如何在Docker CMD中链接python和S3命令?

时间:2019-05-07 00:41:43

标签: python docker

我正在尝试使用CMD在Dockerfile中链接多个命令。 我有2个需要顺序运行的python脚本,然后对这2个脚本创建的文件进行S3同步。

我的docker命令:

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

第一个脚本成功运行,然后容器终止。我不确定如何链接命令。

我可以将这些命令作为命令行参数来传递。 有没有一种方法可以创建.sh文件,放置所有这些命令,然后简单地执行.sh文件,该文件将按顺序运行这些命令。

请提出是否还有更好,更有效的方法。谢谢。

1 个答案:

答案 0 :(得分:1)

是的,您可以创建一个.sh脚本并将其简单地在Docker中使用。假设您已经将Shell脚本与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/