如何在 docker 容器中 运行 时自动更改 API 路由文件中的 FASTAPI 拾取更改?
How to make FASTAPI pickup changes in an API routing file automatically while running inside a docker container?
我是 运行 FastApi,通过 docker 在 docker-compose 中创建一个名为 ingestion-data 的服务。我的 Dockerfile :
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
# Environment variable for directory containing our app
ENV APP /var/www/app
ENV PYTHONUNBUFFERED 1
# Define working directory
RUN mkdir -p $APP
WORKDIR $APP
COPY . $APP
# Install missing dependencies
RUN pip install -r requirements.txt
和我的 docker-compose.yml 文件
version: '3.8'
services:
ingestion-service:
build:
context: ./app
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- .:/app
restart: always
我不确定为什么当我对我的应用程序的任何端点进行任何更改时,它没有自动获取任何更改。我每次都必须重建我的图像和容器。
快速回答:是的:)
在 Dockerfile 中,您将应用程序复制到 /var/www/app。
Dockerfile 中的指令在构建映像时执行 (docker build -t <imgName>:<tag>
)
如果您稍后更改代码,图像怎么会知道?
但是,当您在 /var/www/app 下执行 docker run
/ docker-compose up
命令时,您可以将卷(目录)从主机挂载到容器中。然后,您将能够更改本地目录中的代码,更改也会自动在容器中看到。
也许您想在 /var/www/app 挂载当前工作目录(包含您的应用程序的目录)?
volumes:
- .:/var/www/app
我是 运行 FastApi,通过 docker 在 docker-compose 中创建一个名为 ingestion-data 的服务。我的 Dockerfile :
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
# Environment variable for directory containing our app
ENV APP /var/www/app
ENV PYTHONUNBUFFERED 1
# Define working directory
RUN mkdir -p $APP
WORKDIR $APP
COPY . $APP
# Install missing dependencies
RUN pip install -r requirements.txt
和我的 docker-compose.yml 文件
version: '3.8'
services:
ingestion-service:
build:
context: ./app
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- .:/app
restart: always
我不确定为什么当我对我的应用程序的任何端点进行任何更改时,它没有自动获取任何更改。我每次都必须重建我的图像和容器。
快速回答:是的:)
在 Dockerfile 中,您将应用程序复制到 /var/www/app。
Dockerfile 中的指令在构建映像时执行 (docker build -t <imgName>:<tag>
)
如果您稍后更改代码,图像怎么会知道?
但是,当您在 /var/www/app 下执行 docker run
/ docker-compose up
命令时,您可以将卷(目录)从主机挂载到容器中。然后,您将能够更改本地目录中的代码,更改也会自动在容器中看到。
也许您想在 /var/www/app 挂载当前工作目录(包含您的应用程序的目录)?
volumes:
- .:/var/www/app