Estoy ejecutando FastApi a través de Docker creando un servicio llamado ingestion-data en docker-compose. Mi 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.txtY mi archivo docker-compose.yml
version: '3.8' services: ingestion-service: build: context: ./app dockerfile: Dockerfile ports: - "80:80" volumes: - .:/app restart: alwaysNo estoy seguro de por qué esto no detecta ningún cambio automáticamente cuando realizo cualquier cambio en cualquier punto final de mi aplicación. Tengo que reconstruir mis imágenes y contenedor cada vez.
Respuesta rápida: Sí :)
En el Dockerfile, copia su aplicación en /var/www/app.
Las instrucciones del Dockerfile se ejecutan cuando crea su imagen ( docker build -t <imgName>:<tag> )
Si cambia el código más adelante, ¿cómo podría la imagen darse cuenta de eso?
Sin embargo, puede montar un volumen (un directorio) desde su máquina host, en el contenedor cuando ejecuta el comando docker run / docker-compose up , justo debajo de /var/www/app. Luego podrá cambiar el código en su directorio local y los cambios también se verán automáticamente en el contenedor.
¿Quizás desee montar el directorio de trabajo actual (el que contiene su aplicación) en /var/www/app?
volumes: - .:/var/www/app