【发布时间】:2023-03-24 14:57:02
【问题描述】:
我有一个Dockerfile:
FROM ubuntu:18.04
RUN apt-get -y update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get update -y
RUN apt-get install -y python3.7 build-essential python3-pip
RUN pip3 install --upgrade pip
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
ENV FLASK_APP application.py
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
EXPOSE 5000
ENTRYPOINT python3 -m flask run --host=0.0.0.0
但我还想在运行ENTRYPOINT 之前运行python3 download.py。如果我把它放在这里,然后build,那么它就会在这里执行。我需要它只在 ElasticBeanstalk 上执行。
我该怎么做?
【问题讨论】:
-
是否每次基于此镜像启动容器时都运行
python3 download.py?然后你必须将入口点更改为sh -c 'python3 download.py; python3 -m flask run --host=0.0.0.0'。 -
是的,但我只希望它在我部署到 Elastic Beanstalk 时运行
-
这不是 Docker 要解决的问题,至少不是直接解决的问题。您的入口点可能是一个小的 shell 脚本,它接受一个参数来确定在运行
flask之前是否运行download.py。如果在 ElasticBeanstalk 上运行,则提供一个参数,否则提供不同的参数。
标签: python docker amazon-elastic-beanstalk