我正在尝试为python程序构建Docker Img(这是FreeCodeCamp的电报Bot), 现在代码可以完美运行,但是当我尝试构建此Dockerfile
FROM python:3.6
COPY . /app
WORKDIR /app
RUN pip install -r requirement.txt
ENV PORT 8080
ENV HOST 0.0.0.0
RUN ["python","bot.py"]
系统挂起。
dishant_sonawane17@cloudshell:~/project (voice-261819)$ docker build -t python-docker-dev .
Sending build context to Docker daemon 4.608kB
Step 1/7 : FROM python:3.6
---> e0373ff33a19
Step 2/7 : COPY . /app
---> Using cache
---> 6f9396ff2a64
Step 3/7 : WORKDIR /app
---> Using cache
---> 1c216f1a529c
Step 4/7 : RUN pip install -r requirement.txt
---> Using cache
---> 531e40ac101d
Step 5/7 : ENV PORT 8080
---> Using cache
---> 385b36f30518
Step 6/7 : ENV HOST 0.0.0.0
---> Using cache
---> b1ba2f0bf26e
Step 7/7 : RUN ["python","bot.py"]
---> Running in 5ceec7069ee9
答案 0 :(得分:1)
不确定bot.py
会做什么,但是它将运行并等待完成...
好像您希望bot.py
成为启动容器后启动的应用程序。
为此,您应该使用ENTRYPOINT
或CMD
。
简而言之:
RUN
在新层中执行命令并创建新图像。例如,它通常用于安装软件包。CMD
设置默认命令和/或参数,当docker容器运行时可以从命令行覆盖。ENTRYPOINT
配置一个将作为可执行文件运行的容器。
更详细的解释/来源:https://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/。