Я использую Docker (версия 1.12.2, build bb80604) для установки простого изображения/контейнера с Gatling (инструмент тестирования нагрузки) + NodeJS. Итак, я вытащил this Docker/Gatling base image и создал свой собственный файл Docker для установки NodeJS на нем.Docker - переопределить или удалить ENTRYPOINT из базового изображения
Однако изображение основания Docker/Gatling выше имеет ENTRYPOINT, который уже определен для вызова Gatling сразу, а затем автоматически выходит из контейнера. Это выглядит следующим образом:
ENTRYPOINT ["gatling.sh"]
То, что я пытаюсь достичь: Я хочу, чтобы запустить вторую команду (мой собственный сценарий NodeJS для анализа результатов испытаний), однако я не мог найти решение до сих пор (Я попытался переопределить ENTRYPOINT, различные комбинации ENTRYPOINT и CMD, но без успеха).
Вот как мой нынешний Dockerfile выглядит следующим образом:
FROM denvazh/gatling:2.2.3
RUN apk update \
&& apk add -U bash \
&& apk add nodejs=6.7.0-r0
COPY simulations /opt/gatling/user-files/simulations
COPY trigger-test-and-parser.sh /opt/gatling/
RUN chmod +x /opt/gatling/trigger-test-and-parser.sh
ENTRYPOINT ["bash", "/opt/gatling/trigger-test-and-parser.sh"]
Вот команда, я использую, чтобы построить свой имидж на основе моего Dockerfile:
docker build --no-cache -t gatling-nodejs:v8 .
И это команда, которую я использую для запуска моего контейнера:
docker run -i -v "$PWD/results":/opt/gatling/results -v "$PWD":/opt/gatling/git.campmon.com/rodrigot/platform-hps-perf-test gatling-nodejs:v8
И это shellscript (trigger-test-and-parser.sh) Я хотел бы чтобы выполнить один раз начинается контейнера (он должен вызвать Гатлинга, а затем запускает мой NodeJS анализатор):
gatling.sh -s MicroserviceHPSPubSubRatePerfTest.scala
node publish-rate-to-team-city.js
Любые идеи или твики, так что я могу запустить обе команды, как только мой стартах контейнера?
Большое спасибо!
ваш 'Докер run' концы с' Гатлинга-nodejs: v7' это опечатка? Я думал, что это закончится 8 вместо 7. – user2915097
Это опечатка, извините. Просто обновлено! :) – user2253130
попробуйте в gatlin.sh 'cmd1; cmd2; sleep infinity' – user2915097