Скрипты вывода сборки Docker запускались из dockerfile - PullRequest
0 голосов
/ 12 ноября 2018

Я запускаю команду

docker build -t $NAME -f Dockerfile.test .

.

В моем Dockerfile.test у меня в конце (я копирую определенные вещи, чтобы все работало)

CMD["bin/bash", "-c", "bash /run-script.sh && bash /run-another-script.sh"]

Когда я смотрю на свои этапы сборки в Jenkins, я вижу только, что все прошло нормально,

CMD /bin/bash -c bash /run-script.sh && bash /run-another-script.sh

был выполнен, и, так как я запускаю сканирование sonarqube в этих сценарияхЯ могу видеть в моем сонаре, что сканирование произошло (что нормально).

Но так как я запускаю модульные тесты PHP в сценариях, я немного подозрительно отношусь к этой части, потому что в Jenkinsэто было сделано очень быстро (на моем локальном компьютере выполнение модульного тестирования с отчетом о покрытии занимает ~ 20 минут), не удалось или не запустилось, как следует.

Поэтому я хотел бы увидеть вывод этих сценариев(run-script.sh и run-another-script.sh), чтобы убедиться, что все работает как положено.

Я слышал, что Docker не будет отображать вывод сценариев, которые пишут / удаляют строки в терминале, так что этоможет быть причина (я думаю, ofc).

Есть ли способ показатьutput

1 Ответ

0 голосов
/ 12 ноября 2018

Я думаю, что вы путаете RUN и CMD.

RUN -команды выполняются во время сборки (docker build), CMD -команды выполняются при запуске контейнера(docker run).

Чтобы быть уверенным, я написал небольшой тест:

1) Использование CMD

$ docker build -t cmdtest -<<EOF
FROM centos:7

RUN echo "echo script1" > script1.sh
RUN echo "echo script2" > script2.sh

CMD ["bin/bash", "-c", "bash /script1.sh && bash /script2.sh"]
EOF

ничего не печатает, потому что не выполнено.Однако при печати docker run:

$ docker run cmdtest
> script1
> script1

2) Использование RUN

$ docker build -t cmdtest -<<EOF
FROM centos:7

RUN echo "echo script1" > script1.sh
RUN echo "echo script2" > script2.sh

RUN ["bin/bash", "-c", "bash /script1.sh && bash /script2.sh"]
EOF

> Sending build context to Docker daemon 2.048 kB
> ...
> Step 4/4 : RUN bin/bash -c bash /script1.sh && bash /script2.sh
> ---> Running in 7aab2725ed25
>
> script1
> script2
> ---> 8ca71d1c67e8

при печати во время сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...