eto*_*ntz 7 python docker fastapi
我通过 docker 运行 FastApi,在 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
Run Code Online (Sandbox Code Playgroud)
和我的 docker-compose.yml 文件
version: '3.8'
services:
ingestion-service:
build:
context: ./app
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- .:/app
restart: always
Run Code Online (Sandbox Code Playgroud)
我不确定为什么当我在应用程序的任何端点中进行任何更改时,它不会自动获取任何更改。我每次都必须重建我的图像和容器。
快速回答:是的:)
在 Dockerfile 中,将应用程序复制到 /var/www/app 中。
Dockerfile 中的指令在您构建映像时执行 ( docker build -t <imgName>:<tag>)
如果您稍后更改代码,映像如何知道这一点?但是,当您执行/命令
时,您可以将主机上的卷(目录)挂载到容器中,位于 /var/www/app 下。然后,您将能够更改本地目录中的代码,并且更改也会自动在容器中看到。docker rundocker-compose up
也许您想将当前工作目录(包含您的应用程序的目录)挂载在 /var/www/app ?
volumes:
- .:/var/www/app
Run Code Online (Sandbox Code Playgroud)