♻️ Refactor prestart (migrations), move that to its own container (#1350)
This commit is contained in:

committed by
GitHub

parent
d87b6391b5
commit
8fe66c1cc1
@@ -26,3 +26,5 @@ COPY ./prestart.sh /app/
|
||||
COPY ./tests-start.sh /app/
|
||||
|
||||
COPY ./app /app/app
|
||||
|
||||
CMD ["fastapi", "run", "--workers", "4", "app/main.py"]
|
||||
|
@@ -59,7 +59,7 @@ services:
|
||||
restart: "no"
|
||||
ports:
|
||||
- "8888:8888"
|
||||
- "8000:80"
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- ./backend/:/app
|
||||
build:
|
||||
@@ -67,7 +67,11 @@ services:
|
||||
args:
|
||||
INSTALL_DEV: ${INSTALL_DEV-true}
|
||||
# command: sleep infinity # Infinite loop to keep container alive doing nothing
|
||||
command: /start-reload.sh
|
||||
command:
|
||||
- fastapi
|
||||
- run
|
||||
- --reload
|
||||
- "app/main.py"
|
||||
environment:
|
||||
SMTP_HOST: "mailcatcher"
|
||||
SMTP_PORT: "1025"
|
||||
|
@@ -42,6 +42,41 @@ services:
|
||||
- traefik.http.routers.${STACK_NAME?Variable not set}-adminer-https.tls.certresolver=le
|
||||
- traefik.http.services.${STACK_NAME?Variable not set}-adminer.loadbalancer.server.port=8080
|
||||
|
||||
prestart:
|
||||
image: '${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}'
|
||||
build:
|
||||
context: ./backend
|
||||
args:
|
||||
INSTALL_DEV: ${INSTALL_DEV-false}
|
||||
networks:
|
||||
- traefik-public
|
||||
- default
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
command: bash prestart.sh
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- DOMAIN=${DOMAIN}
|
||||
- FRONTEND_HOST=${FRONTEND_HOST?Variable not set}
|
||||
- ENVIRONMENT=${ENVIRONMENT}
|
||||
- BACKEND_CORS_ORIGINS=${BACKEND_CORS_ORIGINS}
|
||||
- SECRET_KEY=${SECRET_KEY?Variable not set}
|
||||
- FIRST_SUPERUSER=${FIRST_SUPERUSER?Variable not set}
|
||||
- FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD?Variable not set}
|
||||
- SMTP_HOST=${SMTP_HOST}
|
||||
- SMTP_USER=${SMTP_USER}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
|
||||
- POSTGRES_SERVER=db
|
||||
- POSTGRES_PORT=${POSTGRES_PORT}
|
||||
- POSTGRES_DB=${POSTGRES_DB}
|
||||
- POSTGRES_USER=${POSTGRES_USER?Variable not set}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
|
||||
- SENTRY_DSN=${SENTRY_DSN}
|
||||
|
||||
backend:
|
||||
image: '${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}'
|
||||
restart: always
|
||||
@@ -52,6 +87,8 @@ services:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
prestart:
|
||||
condition: service_completed_successfully
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
@@ -74,7 +111,7 @@ services:
|
||||
- SENTRY_DSN=${SENTRY_DSN}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost/api/v1/utils/health-check/"]
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -88,7 +125,7 @@ services:
|
||||
- traefik.docker.network=traefik-public
|
||||
- traefik.constraint-label=traefik-public
|
||||
|
||||
- traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=80
|
||||
- traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=8000
|
||||
|
||||
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=Host(`api.${DOMAIN?Variable not set}`)
|
||||
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.entrypoints=http
|
||||
|
Reference in New Issue
Block a user