我们有一个非常小的 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" 这没有用,它只是。
答案 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
变量中。