Чтобы сжать изображение, используйте
docker image build --compress {rest-of-the-build-arguments-here}
для запуска dockerStatScript.sh
после "pm2-runtime", "pm2_conf.json"
, вам нужно будет создать скрипт оболочки типа startup.sh
с содержимым
./pm2-runtime.sh pm2_conf.json
./dockerStatScript.sh
add это к изображению docker, как вы сделали для dockerStatScript.sh
. то есть
COPY docker/startup.sh .
RUN chmod +x startup.sh
и затем заменить их:
RUN ["/bin/bash","dockerStatScript.sh"]
CMD [ "pm2-runtime", "pm2_conf.json" ]
на это:
ENTRYPOINT ["/bin/bash","/app/startup.sh"]
и запустить контейнер без параметров, поскольку точка входа переходит в «запуск». sh "при каждом запуске контейнера.
Вот полезная ссылка, которая объясняет параметры запуска:
https://dev.to/lasatadevi/docker-cmd-vs-entrypoint-34e0.
надеюсь, я не сделал не делайте опечаток:)
ОБНОВЛЕНИЕ:
вы можете использовать ENTRYPOINT ["/bin/bash","/app/startup.sh"]
или
CMD ["/bin/bash","/app/startup.sh"]
или опустите точку входа и cmd и просто запустите контейнер с /app/startup.sh
в качестве параметра. то есть docker run image-name "/app/startup.sh"
- я обычно использую этот wa, потому что он дает больше гибкости для запуска во время отладки.
Убедитесь, что ваш файл sh не завершится, пока вам не понадобится ваш контейнер для остановки.