jeudi 1 août 2019

Ajouter BlackFire dans votre container PHP

BlackFire est un outil pour vous aider à comprendre ce qu'il se passe dans votre code, et trouver les goulots d'étranglement pour améliorer les performances.

Voilà un exemple d'installation dans un container PHP :

Dockerfile
FROM php:7.3.7-cli # Install BlackFire RUN echo "foo" RUN \ apt-get update \ && apt-get install -y gnupg2 wget \ && wget -q -O - https://packages.blackfire.io/gpg.key | apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list \ && apt-get update \ && apt-get install -y blackfire-agent blackfire-php # Configure BlackFire COPY .blackfire.ini /root/.blackfire.ini ARG BLACKFIRE_CLIENT_ID ARG BLACKFIRE_CLIENT_TOKEN ARG BLACKFIRE_SERVER_ID ARG BLACKFIRE_SERVER_TOKEN RUN \ sed "s/^client-id=$/client-id=${BLACKFIRE_CLIENT_ID}/" -i /root/.blackfire.ini \ && sed "s/^client-token=$/client-token=${BLACKFIRE_CLIENT_TOKEN}/" -i /root/.blackfire.ini \ && sed "s/^server-id=$/server-id=${BLACKFIRE_SERVER_ID}/" -i /etc/blackfire/agent \ && sed "s/^server-token=$/server-token=${BLACKFIRE_SERVER_TOKEN}/" -i /etc/blackfire/agent
blackfire.sh
#!/usr/bin/env bash readonly BLACKFIRE_CLIENT_ID= readonly BLACKFIRE_CLIENT_TOKEN= readonly BLACKFIRE_SERVER_ID= readonly BLACKFIRE_SERVER_TOKEN=
.blackfire.ini
[blackfire] ca-cert= client-id= client-token= endpoint=https://blackfire.io http-proxy= https-proxy= timeout=15s
Builder votre image
source blackfire.sh docker build \ -t ${PROJECT_NAME} \ --build-arg BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID} \ --build-arg BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN} \ --build-arg BLACKFIRE_SERVER_ID=${BLACKFIRE_SERVER_ID} \ --build-arg BLACKFIRE_SERVER_TOKEN=${BLACKFIRE_SERVER_TOKEN}


Ensuite pour profiler du PHP en CLI :
blackfire run php ...

Aucun commentaire:

Enregistrer un commentaire