Dockerize我的烧瓶应用程序

时间:2018-02-24 19:56:16

标签: docker flask docker-compose

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

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"]

多克尔-compose.yml:

version: '3'

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

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

最佳

2 个答案:

答案 0 :(得分:0)

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

来源:https://stackoverflow.com/a/40276268/5649170

答案 1 :(得分:0)

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

COPY . /app

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

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

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