Как связать команды Python и S3 в Docker CMD? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь объединить несколько команд в Dockerfile, используя CMD.У меня есть 2 сценария Python, которые должны выполняться последовательно, а затем я выполняю синхронизацию S3 файлов, созданных этими двумя сценариями.

Моя команда docker:

CMD [ "python", "code/py_script1.py", "&&" ,"code/py_script2.py", "&&", "aws s3 sync /files s3://test_container/test/"]

Первый сценарийработает успешно, а затем контейнер завершается.Я не уверен, как я могу объединить команды в команду.

Я согласен с передачей этих команд в качестве аргументов командной строки.Есть ли способ, которым я мог бы создать файл .sh, поместить все эти команды и просто выполнить файл .sh, который позаботится о последовательном запуске этих команд.

Пожалуйста, предложите, если есть что-то лучше, большеэффективный способ.Спасибо.

1 Ответ

1 голос
/ 07 мая 2019

Да, вы можете создать .sh скрипт и просто использовать его в Docker.Предположим, у вас уже есть сценарий оболочки в той же папке, что и Dockerfile.Добавьте следующие две строки к Dockerfile:

COPY path/to/your-shell-script.sh /your-shell-script.sh
CMD [ "/your-shell-script.sh" ]

Для последовательного запуска команды вы можете использовать либо set -e, либо &&.Я предпочитаю set -e.

#! /bin/sh
set -e

python code/py_script1.py
python code/py_script2.py
aws s3 sync /files s3://test_container/test/

&& версия:

#! /bin/sh

python code/py_script1.py && \
python code/py_script2.py && \
aws s3 sync /files s3://test_container/test/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...