Когда я запускаю образ, созданный из файла Docker, через docker -compose, контейнер завершает работу перед командой в docker compose run.
Это ожидается. Эта команда в docker compose файле: s3cmd ls
добавляется к точке входа вашего s3 'Dockerfile.
Так что-то вроде этого выполняется:
/s3cmd_repo/entrypoint.sh s3cmd ls
, эти два аргумента просто игнорируются во время sh выполнение скрипта.
Чтобы выполнить несколько команд для запуска контейнера, вам не нужно определять ENTRYPOINT. Вместо этого укажите команды для запуска в docker -композиционном файле:
version: '3'
services:
execution:
image: s3
command: sh -c "/s3cmd_repo/entrypoint.sh && s3cmd ls"
Обратите внимание, что sh
работает в любом дистрибутиве Linux, bash
- нет (например, Alpine).