Dockerfile入口点问题

时间:2019-09-09 14:31:09

标签: python bash docker flask dockerfile

我具有以下dockerfile来创建Python Flask应用程序的映像:

FROM python:3.7-slim-buster
COPY ./requirements.txt /appFlask/requirements.txt
COPY . /appFlask

WORKDIR /appFlask

RUN pip install -r requirements.txt
RUN pip install gunicorn

EXPOSE 5000

ENTRYPOINT [ "bash", "gunicorn -b 0.0.0.0:5000 mainPage:app" ]

除了最后一步,它运行良好,这会给我以下错误:

错误:standard_init_linux.go:207:exec用户进程导致“没有这样的文件或目录

它是如此简单,以至于我不知道自己在做什么错。另外,有没有比python:3.7-slim-buster更好的基础映像来构建轻量级的烧瓶映像?

2 个答案:

答案 0 :(得分:3)

  1. 如果bash不在路径中,则需要提供完整路径
  2. 如果要将命令传递给bash,语法为bash -c "my whole script",在docker中将变为:
ENTRYPOINT ["/bin/bash", "-c", "my whole script"]
  1. 奖金:为什么不使用Gunicorn本身作为切入点?为什么还要烦恼bash?

答案 1 :(得分:3)

入口点应该是:

ENTRYPOINT [ "gunicorn", "-b, "0.0.0.0:5000", "mainPage:app" ]

ENTRYPOINT gunicorn -b 0.0.0.0:5000 mainPage:app

src:https://docs.docker.com/engine/reference/builder/#entrypoint