我创建了以下 Dockerfile
FROM python
COPY . /home
CMD pip install pandas
CMD mkdir /home/report
CMD mkdir /home/data
CMD python /home/hello.py
Run Code Online (Sandbox Code Playgroud)
hello.py简单的Python脚本在哪里
name = input('What is your Name? ')
print('Nice to meet you', name)
from pandas import read_csv
mydf = read_csv('mycsv.csv')
print(mydf.head())
Run Code Online (Sandbox Code Playgroud)
然后,我使用 构建 Docker 映像并docker build -t myexample .运行它,docker run -it myexample bash以便通过 shell 与其进行交互。构建运行良好,运行时我出现了 shell 提示符,但随后:
report或data尚未创建/home。python /home/hello.py不会自行执行。我必须自己输入才能让脚本运行。python /home/hello.py,问候和提示输入我的名字的前两行就会正确执行,但随后会出现错误,指出 pandas 未知。因此,总而言之,似乎没有CMD考虑任何陈述。我究竟做错了什么?
当您构建图像时,用于RUN执行命令。然后,仅使用一次 CMD 来声明将在构建后启动容器的命令(因此只有 CMD):
Dockerfile:
\n\nFROM python\nRUN pip install pandas\nRUN mkdir /home/report\nRUN mkdir /home/data\n\nCOPY . /home\nWORKDIR /home\nCMD python /home/hello.py\nRun Code Online (Sandbox Code Playgroud)\n\nmycsv.csv:
\n\na,b,c\n1,2,3\n4,5,6\nRun Code Online (Sandbox Code Playgroud)\n\n构建:docker build . -t pandas-test
跑步:
\n\n\xe2\x96\xb6 docker run -it pandas-test\nWhat is your Name? Tfovid\nNice to meet you Tfovid\n a b c\n0 1 2 3\n1 4 5 6\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
14703 次 |
| 最近记录: |