Ошибка отправки запроса в Blackfire API: Get https://blackfire.io/agent-api/v1/public-keys: x509: сертификат подписан неизвестным органом - PullRequest
0 голосов
/ 11 апреля 2019

пытается настроить / запустить 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.

...