我想将一个python脚本添加到docker容器中。此脚本处理我在运行容器时提供的数据文件。我无法弄清楚如何做到这一点,所以我会感谢一些帮助(我不想将data.txt文件添加到容器中)。我知道我可以使用curl将文件发送到REST接口,但如果可能的话,我想要一个更简单的解决方案。
(如果解决方案也适用于ECS,我会很高兴。但我还不了解其含义。)
Dockerfile:
FROM centos:6
RUN yum -y update
RUN yum -y install epel-release && yum clean all
RUN yum -y install python-pip && yum clean all
ADD . /myapp
WORKDIR /myapp
# install requirements
RUN pip install -r requirements.txt
# install
#RUN pip install .
CMD ["python","./app.py", "/data.txt"]
脚本:
import sys
def print_out(datafile):
with open(datafile, 'r') as dfile:
for line in dfile:
print line.strip()
def main():
datafile = sys.argv[1]
print_out(datafile)
if __name__ == '__main__':
main()
data.txt中:
Bob
Steve
Marvin
Paul
运行容器(不能那样工作)
$ docker run myapp data.txt
答案 0 :(得分:1)
使用主机卷(也称为bind mount)将脚本(假设它称为app.py)和data.txt映射到容器中。将它们放在同一目录中,然后运行:
docker run -v `pwd`:/myapp myapp python app.py data.txt
从该目录将当前目录映射到/ myapp(覆盖该位置图像内的任何内容)。如果您使用的是Docker for Windows / Mac,请确保您位于c:/ Users或/ Users目录下。