gpt4 book ai didi

Docker 撰写 'hot-reload' 问题

转载 作者:行者123 更新时间:2023-12-02 18:52:27 25 4
gpt4 key购买 nike

虽然我已经看到了其他问题——到目前为止,所提出的解决方案或文档都没有帮助到我。如果这有点多余,我们深表歉意。

我正在尝试在我的 docker-compose.yml 文件中安装一个卷,以便在我进行更改时“热重新加载”我的代码。我正在运行一个 flask 应用程序。我的文件结构如下所示:

├── celery_queue
│   ├── Dockerfile
│   ├── requirements.txt
│   └── tasks.py
├── docker-compose.yml
├── my_test_app
│   ├── Dockerfile
│   ├── app
│   │   ├── __init__.py
│   ├── my_test_app.py
│   ├── requirements.txt
│   └── worker.py
├── run.sh
└── stop.sh

我的docker-compose.yml:

version: "3"
services:
redis:
image: "redis:alpine"
web:
build:
context: ./my_test_app
dockerfile: Dockerfile
restart: always
volumes:
- ./my_test_app:/my_test_app
ports:
- "5000:5000"
depends_on:
- redis
worker:
build:
context: celery_queue
dockerfile: Dockerfile
depends_on:
- redis
monitor:
build:
context: celery_queue
dockerfile: Dockerfile
ports:
- "5555:5555"
entrypoint: flower
command: -A tasks --port=5555 --broker=redis://redis:6379/0
depends_on:
- redis

最后 -- my_test_app 目录中的 Dockerfile:

FROM python:3.6-alpine

ENV CELERY_BROKER_URL redis://redis:6379/0
ENV CELERY_RESULT_BACKEND redis://redis:6379/0
ENV C_FORCE_ROOT true

ENV HOST 0.0.0.0
ENV PORT 5000
ENV DEBUG true

ADD . /my_test_app
WORKDIR /my_test_app

# install requirements
RUN pip install --upgrade pip && \
pip install -r requirements.txt

# expose the app port
EXPOSE 5000

RUN pip install gunicorn

# run the app server
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "3", "my_test_app:app"]

同样——我的目标是编辑 my_test_app 目录中的 Flask 代码,并在不启动/停止的情况下将其重新加载到我的容器中。

提前感谢您的任何建议!

最佳答案

这实际上与我的 Gunicorn 命令有关,它需要一个 --reload 标志。

我用来解决问题的步骤:

1) 因为我使用的是 OSX,所以我在我的 Docker 首选项中确认了为此目录启用了文件共享。

2) 我执行到容器中以检查文件是否在代码更改时更新:docker exec -it 我的容器名称 sh

3) 它们按预期更新,所以我检查了 gunicorn/flask 文档。

关于Docker 撰写 'hot-reload' 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com