Docker构建挂起

时间:2020-07-17 07:08:11

标签: python docker python-telegram-bot

我正在尝试为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

1 个答案:

答案 0 :(得分:1)

不确定bot.py会做什么,但是它将运行并等待完成... 好像您希望bot.py成为启动容器后启动的应用程序。

为此,您应该使用ENTRYPOINTCMD

简而言之:

  • RUN在新层中执行命令并创建新图像。例如,它通常用于安装软件包。
  • CMD设置默认命令和/或参数,当docker容器运行时可以从命令行覆盖。
  • ENTRYPOINT配置一个将作为可执行文件运行的容器。

更详细的解释/来源:https://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/