пытается настроить / запустить https://github.com/blackfireio/blackfire-workshop.git
. / Pull.sh приводит к:
You can now run the containers using the followings :
* For XHProf: docker run --rm -it -v $(pwd):/app tucksaun/blackfire-workshop:xhprof
* For Xdebug: docker run --rm -it -v $(pwd):/app tucksaun/blackfire-workshop:xdebug
* For Blackfire:
1. docker run -d --name blackfire -e BLACKFIRE_SERVER_ID -e BLACKFIRE_SERVER_TOKEN blackfire/blackfire
2. docker run --rm -it -v $(pwd):/app --link blackfire:blackfire tucksaun/blackfire-workshop:blackfire
Теперь, когда я запускаю Docker Run, я получаю ошибку:
$ docker run -it --name blackfire -e BLACKFIRE_SERVER_ID -e BLACKFIRE_SERVER_TOKEN blackfire/blackfire
[2019-04-10T19:55:19Z] ERROR: Error sending request to Blackfire API: Get https://blackfire.io/agent-api/v1/public-keys: x509: certificate signed by unknown authority
[2019-04-10T19:55:19Z] ERROR: Error while retrieving public keys from API: Cannot send an HTTP request to the Blackfire API.
Итак, чтобы решить эту проблему с x509, я думаю, мне нужно добавить следующие строки в пользовательский контейнер Blackfire, для которого у меня есть следующий Dockerfile:
FROM blackfire/blackfire
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY BCPSG.pem /etc/ssl/certs
RUN update-ca-certificates 2>/dev/null
ENV BLACKFIRE_CONFIG /dev/null
ENV BLACKFIRE_LOG_LEVEL 1
ENV BLACKFIRE_SOCKET tcp://0.0.0.0:8707
RUN mkdir -p /var/run/blackfire
EXPOSE 8707
RUN apk add --no-cache curl
#ADD blackfire blackfire-agent /usr/bin # not required, as blackfire/blackfire already has the agent alias added to /usr/bin
CMD ["blackfire-agent"]
построить это локально, как:
docker build -t bgblackfire/bgblackfire:bgbf .
что дает мне:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
bgblackfire/bgblackfire bgbf a041b766963d 8 seconds ago 27.5MB
blackfire/blackfire latest 7a7965c92939 3 weeks ago 27.2MB
теперь экспортируйте BLACKFIRE_SERVER_ID и BLACKFIRE_SERVER_TOKEN:
export BLACKFIRE_CLIENT_ID=<put value here>
export BLACKFIRE_CLIENT_TOKEN=<put value here>
export BLACKFIRE_SERVER_ID=<put value here>
export BLACKFIRE_SERVER_TOKEN=<put value here>
Затем я просто запускаю контейнер bgblackfire / bgblackfire: bgbf, как:
docker run --name="bgblackfire" -d -e BLACKFIRE_SERVER_ID -e BLACKFIRE_SERVER_TOKEN bgblackfire/bgblackfire:bgbf
и укажите это в docker-compose.yml как:
blackfire:
image: bgblackfire/bgblackfire:bgbf
environment:
- BLACKFIRE_SERVER_ID
- BLACKFIRE_SERVER_TOKEN
app:
image: tucksaun/blackfire-workshop:blackfire
volumes:
- .:/app
links:
- blackfire
и запустить $docker-compose up
поэтому вопрос в том, как окружение docker-compose узнает об использовании экземпляра bgblackfire / bgblackfire: bgbf? Кроме того, я также не могу запускать контейнер bgblackfire / bgblackfire: bgbf периодически, когда я запускаю команду: docker run -d --name blackfire -e BLACKFIRE_SERVER_ID -e BLACKFIRE_SERVER_TOKEN bgblackfire/bgblackfire:bgbf
просто зависает, я также экспортирую ОБА переменные среды перед запуском докера.
Мне удалось запустить контейнер bgblackfire:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
564c70f2e1c8 bgblackfire/bgblackfire:bgbf "blackfire-agent" 4 minutes ago Up 4 minutes 8707/tcp bgblackfire
docker-compose дает мне:
Attaching to blackfire-workshop_blackfire_1, blackfire-workshop_app_1
app_1 |
app_1 | Warning: require_once(/app/app/bootstrap.php.cache): failed to open stream: No such file or directory in /app/app/console on line 10
app_1 |
app_1 | Fatal error: require_once(): Failed opening required '/app/app/bootstrap.php.cache' (include_path='.:/usr/local/lib/php') in /app/app/console on line 10
blackfire-workshop_app_1 exited with code 255
Это было решено запуском $composer install
в корне каталога на вашем хост-компьютере (в моем случае Mac). Это создаст необходимые каталоги и пакеты (я рекомендую после запуска composer, перенести изменения в git repo., Чтобы в следующий раз не приходилось угадывать решение.
Вот еще одно обновление: я смог изменить файл docker-compose.yml и вызвать службу UP и иметь возможность доступа к ней через http://127.0.0.1
вот модифицированный docker-compose.yml
version: "3"
services:
bgblackfire:
image: bgblackfire/bgblackfire:bgbf
environment:
- BLACKFIRE_SERVER_ID
- BLACKFIRE_SERVER_TOKEN
app:
image: tucksaun/blackfire-workshop:blackfire
expose:
- "80"
ports:
- "80:80"
volumes:
- .:/app
links:
- bgblackfire:bgblackfire
и стандартный вывод:
$ docker-compose up
Creating network "blackfire-workshop_default" with the default driver
WARNING: Found orphan containers (blackfire-workshop_blackfire_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Removing blackfire-workshop_app_1
Recreating blackfire-workshop_bgblackfire_1 ... done
Recreating f185fcdf4bfa_blackfire-workshop_app_1 ... done
Attaching to blackfire-workshop_bgblackfire_1, blackfire-workshop_app_1
app_1 | If you are in a container you would probably prefer to use: http://192.168.224.3:80
app_1 |
app_1 | Running PHP built-in server in production environment is NOT recommended!
app_1 | Server running on http://0.0.0.0:80
app_1 |
app_1 | Quit the server with CONTROL-C.
Но когда я просматриваю его на http://127.0.0.1
, я получаю сообщение об ошибке:
Are You Authorized to Profile this Page? Probe Not Found or Invalid signature.