Dockerize 我的 Flask 应用程序

问题描述 投票:0回答:2

我是 Docker 和 Docker-compose 的新手。我构建了 dockerfile 和 docker-compose.yml 来运行我的 Flask hello world。但是在我更改 app.py 和 docker-compose up 之后,它没有反映我的代码更改。

Dockerfile:

FROM ubuntu:latest

RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential && \
    pip install flask PyMySQL pandas pymysql sqlalchemy

COPY . /app
WORKDIR /app

ENTRYPOINT ["python", "app.py"]

Docker-compose.yml:

version: '3'

services:
    web:
        build: ./web
        volumes:
          - .:/tmp
        ports:
          - "5000:5000"

请帮助我。我只想自动反映我的代码更改。

最好

docker flask docker-compose
2个回答
0
投票

由于您在构建期间将代码复制到 docker 镜像中:

COPY . /app

每次更新代码时都需要重新构建 docker 映像,然后从更新的映像运行容器。

如果您将包含代码的文件夹安装到 docker 容器 - 由于安装,代码将在容器中自动更新,但您仍然需要重新启动应用程序,让 python 解释器将更新的代码加载到内存中以开始执行它。因此,由于手动工作,这不是一个解决方案。

我建议关注一些 CI/CD 平台,例如 Jenkins,它将允许您自动化此过程。在这种情况下,您只需将代码推送到版本控制系统,Jenkins 将自动执行所有提到的步骤,以便您的应用程序将自动更新并重新启动。


0
投票

COPY
指令会在构建映像时复制文件版本,忽略后续文件更改。

来源:https://docs.docker.com/reference/dockerfile/#copy

© www.soinside.com 2019 - 2024. All rights reserved.