我是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"
请帮帮我。我只想自动反映代码更改。
最佳
答案 0 :(得分:0)
COPY
指令在构建映像时复制文件版本,忽略后续文件更改。
答案 1 :(得分:0)
由于您在构建过程中将代码复制到docker镜像中:
COPY . /app
每次更新代码时都需要重新构建docker镜像,然后从更新的图像中运行容器。
如果要将带有代码的文件夹挂载到docker容器 - 由于挂载,代码将在容器中自动更新,但是仍然需要重新启动应用程序以让python解释器将更新的代码加载到内存中以开始执行它。因此,由于手工操作,这不是一个解决方案。
我建议关注一些CI / CD平台,例如Jenkins,这将允许您自动执行此过程。在这种情况下,您可以将代码推送到版本控制系统,Jenkins将自动执行所有提到的步骤,以便您的应用程序自动更新并重新启动。