RootsLabs

More than a tool ! GitHub Google+ LinkedIn RSS

Docker: utiliser SASS, PHPMyAdmin, MailDev et Sentry

Progi1984 - Commentaires (0)

Dans mon précédent article, j’ai mis en place un environnement de développement basé sur des containers Docker avec Nginx, PHP-fpm et MySQL. Dans cet article, nous allons mettre en place différents containers Docker pour installer les outils suivants : SASS, PHPMyAdmin, MailDev et Sentry.

Logo Docker

Nous allons mettre les interfaces web des divers outils sur plusieurs ports :

  • 81 : PhpMyAdmin ;
  • 82 : MailDev ;
  • 83 : Sentry.

Le port 80 reste pour notre application.

PHPMyAdmin

Pour PhyMyAdmin, il faut ajouter dans le fichier docker-compose.yml les lignes suivantes :

## Tools : PhpMyAdmin
pma:
  image: nazarpc/phpmyadmin
  ports:
    - "81:80"
  links:
    - db:mysql
  environment:
    MYSQL_ROOT_PASSWORD: root

Pour faire fonctionner PhpMyAdmin, la ligne de commande suivante le télécharge et l’active :

c:\wamp\www\myProject>docker-compose up

MailDev

Pour MailDev, il faut ajouter dans le fichier docker-compose.yml les lignes suivantes :

## Tools : MailDev
maildev:
  image: djfarrelly/maildev
  restart: always
  ports:
    - "82:80"

Pour faire fonctionner MailDev, on exécute

docker-compose up

.

SASS

Pour MailDev, il faut ajouter dans le fichier docker-compose.yml les lignes suivantes :

## Tools : SASS
sass:
  image: larryprice/sass
  volumes:
    - ./:/src

Automatiquement, chaque fichier SCSS sera transformé en fichier CSS dès que SASS verra une modification et affichera les erreurs en cas de problème :

Docker : Log de SASS

Pour faire fonctionner SASS, on exécute

docker-compose up

.

Sentry

Pour Sentry, il faut ajouter dans le fichier docker-compose.yml les lignes suivantes :

## Tools : Sentry
sentry:
  image: slafs/sentry
  restart: always
  ports:
    - "83:9000"
  environment:
    SECRET_KEY: ""
    SENTRY_URL_PREFIX: ""
    SENTRY_ADMIN_USERNAME: Progi1984
    SENTRY_ADMIN_PASSWORD: mysecretpass
    SENTRY_ADMIN_EMAIL: progi1984@gmail.com
    SENTRY_PUBLIC: "true"
    SENTRY_INITIAL_TEAM: "myProjectTeam"
    SENTRY_INITIAL_PROJECT: "myProject"
    SENTRY_INITIAL_PLATFORM: "php"
    SENTRY_INITIAL_KEY: ":"

Toutes les clés composant le noeud « environment » sont décrites ici : https://hub.docker.com/r/slafs/sentry/.

Pour faire fonctionner Sentry, on exécute

docker-compose up

.

Conclusion

Comme nous avons pu le voir, il est assez simple de lier des composants à notre environnement de développement. Docker étant basé sur des containers, ajouter ou supprimer un composant à notre environnement se relève d’autant plus simple que Docker Compose permet de tout faire en un seul fichier.

Docker, un environnement de développement versionnable

Progi1984 - Commentaires (2)

Docker est un logiciel libre qui permet d’embarquer dans un container virtuel une application. Cela permet ainsi non plus de virtualiser un système mais de virtualiser un processus, et c’est pourquoi on parle parfois de virtualisation légère. Dans notre exemple, nous allons mettre en place Docker ainsi qu’un environnement de développement basé sur Nginx, PHP-fpm et MySQL.

Logo Docker

Pour une explication approfondie de Docker, je vous conseille l’article de Nicolargo : Virtualisation légère avec Docker.

Logo : Où trouver celui d’une marque ou d’un logiciel ?

Progi1984 - Commentaires (0)

Nombreuses sont les marques existantes et malheureusement trouver un logo pour une marque, cela peut parfait être assez dur. J’ai essayé de regrouper toutes les marques et où avoir leurs logos. Hésitez pas à ajouter un commentaire pour compléter ou modifier cette liste.

A

B

C

D

F

G

H

I

J

  • JetBrains (tous les produits dont PHPStorm) :

M

O

P

S

T

V

W

X

Y

Utiliser CodeClimate avec Github & Travis dans un projet PHP

Progi1984 - Commentaires (1)

Après avoir utilisé Scrutinizer-CI, j’ai décidé d’utiliser CodeClimate pour PHPPresentation.

Logo CodeClimate

Capturer un flux RTSP dans un fichier via ffmpeg

Progi1984 - Commentaires (0)

J’ai eu besoin de récupérer un flux RTSP, protocole souvent utilisé pour streamer des vidéos sur Internet.

Pour cela, un seul outil dans ma boite à outils m’aura été utile : ffmpeg.

Capturer un flux RTSP dans un fichier via ffmpeg

La ligne de commande est simple :

ffmpeg -i rtsp://123.45.67.89/file.mp4 -acodec copy -vcodec copy local.mp4

Soit au final :

C:\Users\user>ffmpeg -i rtsp://123.45.67.89/file.mp4 -acodec copy -vcodec copy local.mp4
ffmpeg version N-50911-g9efcfbe Copyright (c) 2000-2013 the FFmpeg developers
  built on Mar 13 2013 21:26:48 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 19.100 / 52. 19.100
  libavcodec     55.  0.100 / 55.  0.100
  libavformat    55.  0.100 / 55.  0.100
  libavdevice    54.  4.100 / 54.  4.100
  libavfilter     3. 45.103 /  3. 45.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[rtsp @ 022daae0] UDP timeout, retrying with TCP
Input #0, rtsp, from 'rtsp://123.45.67.89/file.mp4':
  Metadata:
    title           : WowzaMediaServer
  Duration: 00:51:49.30, start: 0.000000, bitrate: N/A
    Stream #0:0: Audio: aac, 48000 Hz, stereo, fltp
    Stream #0:1: Video: h264 (Main), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Output #0, mp4, to 'local.mp4':
  Metadata:
    title           : WowzaMediaServer
    encoder         : Lavf55.0.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 90k tbn, 90k tbc
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mp4 @ 022d8dc0] pts has no value
[mp4 @ 022d8dc0] st:0 PTS: 0 DTS: 0 < 3073 invalid, clipping
[mp4 @ 022d8dc0] st:0 PTS: 3600 DTS: 3600 < 7201 invalid, clipping
[mp4 @ 022d8dc0] st:0 PTS: 1024 DTS: 1024 < 3074 invalid, clipping
[mp4 @ 022d8dc0] st:0 PTS: 2048 DTS: 2048 < 3075 invalid, clipping
[mp4 @ 022d8dc0] st:0 PTS: 3072 DTS: 3072 < 3076 invalid, clipping
[mp4 @ 022d8dc0] st:0 PTS: 10800 DTS: 7200 < 7202 invalid, clipping
frame=77732 fps= 24 q=-1.0 Lsize=  417624kB time=00:51:49.23 bitrate=1100.3kbits/s    58.88 bitrate=1087.5kbits/s
video:375616kB audio:39718kB subtitle:0 global headers:0kB muxing overhead 0.551422%

Linux : Détecter son hardware en ligne de commande

Progi1984 - Commentaires (18)

Linux est un outil génial. Alors quand j’ai dû récupérer sur un PC le matériel, je me suis dit que ce serait intéressant de le récupérer via ligne de commande.

Donc voici les quelques lignes de commande qui m’ont permis de récupérer les informations à propos du matériel.

Linux, tu rocks

Rooter le Sony Xperia X10

Progi1984 - Commentaires (0)

Après l’étape de hard reset, je vais vous montrer comment rooter son Sony Xperia X10.

Sony Xperia X10

Présentation PHPOffice

Progi1984 - Commentaires (0)

Dans le cadre d’une présentation pour mes collègues de Cognix-Systems, j’ai réalisé une série de slides pour présenter l’organisation PHPOffice et ses différents projets (et idées). On y parle donc PHPExcel (futur PHPSpreadsheet), PHPWord, PHPPowerPoint (futur PHPPresentation), PHPVisio, PHPProjet et PHPAccess.

N’hésitez pas à me faire vos retours sur ces slides.

Présentation PHPOffice from Progi1984

Optimiser son site WordPress toujours plus

Progi1984 - Commentaires (0)

Mon article précédent sur l’optimisation WordPress m’avait laissé un gout de défi dans la bouche avec un « Page Speed Grade » à 95%. Et si on tentait de s’approcher encore un peu plus des 100%. Mon passage sur un OVH Pro m’a motivé à améliorer ce pourcentage. Voici mes résultats.

Logo WordPress

Firefox OS : Statistiques sur le Marketplace

Progi1984 - Commentaires (5)

Suite à mes articles sur le Marketplace, je m’étais donné comme objectif de mettre en place un système automatisé de mise en ligne des statistiques. Après quelques développement, cela fonctionne assez bien. Voici comment cela fonctionne et mon analyse sur ces statistiques.

Firefox OS : Analyse du Marketplace