首页 > 解决方案 > 如何在 Docker CMD 中链接 python 和 S3 命令?

问题描述

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

我的码头工人命令:

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

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

我可以将这些命令作为命令行参数传递。有没有办法我可以创建一个 .sh 文件,放置所有这些命令并简单地执行 .sh 文件,该文件将负责按顺序运行这些命令。

请建议是否还有更好,更有效的方法。谢谢你。

标签: pythondocker

解决方案


是的,您可以创建一个.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/

推荐阅读