如何在一个命令中运行容器并在 docker 上执行 python?

时间:2021-03-23 15:38:01

标签: python docker containers

我们有一个非常小的 python 代码,需要在容器上运行。以下两个命令工作正常, 我想将它们合二为一?最终目标是容器应该启动(基于图像),运行python并自行退出。

docker run --name mycontainer -v /opt/testuser/pythoncode/:/usr/src/app/ -t -d pythonimage:latest
docker exec -it mycontainer python3 /usr/src/app/subfolder/createfile.py

我试过 -c "/bin/bash python3 /usr/src/app/subfolder/createfile.py" 这没有用,它只是。

1 个答案:

答案 0 :(得分:0)

您可以添加一个名为 Dockerfile 的文件(文件名前后没有点,正是这个),内容如下:

from ubuntu:20.04
env run=/usr/src/app/subfolder/createfile.py
cmd ["/bin/bash", "-c", "${run}"]

然后运行:

docker build YOUR_IMAGE_NAME # this should be a new name, like pythonimage2

现在运行它:

docker run --name mycontainer -v /opt/testuser/pythoncode/:/usr/src/app/ -t -d pythonimage2:latest

所以,现在使容器运行的 docker 执行命令现在是 /usr/src/app/subfolder/createfile.py

关于你的答案,你可以添加一个变量,每次只修改那一行。

即使您可以对您的 Dockerfile 执行此操作:

from ubuntu:20.04
env path=/usr/src/app/subfolder/
env file=$path/createfile.py
cmd ["/bin/bash", "-c", "${file}"]

现在您只需要修改 file 变量。如果您的任何子目录发生更改,您可以将其从 path 变量中删除并将其添加到 file 变量中。