diff --git a/samples/django-celery/app/command.sh b/samples/django-celery/app/command.sh index 395498cf..929fb350 100755 --- a/samples/django-celery/app/command.sh +++ b/samples/django-celery/app/command.sh @@ -1,8 +1,5 @@ #!/bin/bash -# Apply database migrations -python manage.py migrate - # Create superuser if not exists python manage.py createsuperauto diff --git a/samples/django-celery/compose.yaml b/samples/django-celery/compose.yaml index 605c133e..72502f33 100644 --- a/samples/django-celery/compose.yaml +++ b/samples/django-celery/compose.yaml @@ -10,6 +10,7 @@ services: - POSTGRES_URL=postgres://postgres:${POSTGRES_PASSWORD}@database:5432/postgres depends_on: - database + - migrate - broker ports: - mode: ingress @@ -22,6 +23,19 @@ services: retries: 3 start_period: 20s + migrate: + restart: no + build: + context: ./app + dockerfile: Dockerfile + environment: + - SECRET_KEY + - REDIS_URL=redis://broker:6379/0 + - POSTGRES_URL=postgres://postgres:${POSTGRES_PASSWORD}@database:5432/postgres + depends_on: + - database + command: python manage.py migrate + worker: restart: unless-stopped build: @@ -37,6 +51,7 @@ services: depends_on: - database - broker + - migrate command: celery -A django_celery worker --loglevel=info database: diff --git a/samples/django-channels-redis-postgres/.claude/settings.local.json b/samples/django-channels-redis-postgres/.claude/settings.local.json new file mode 100644 index 00000000..59e36baf --- /dev/null +++ b/samples/django-channels-redis-postgres/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(docker compose:*)" + ], + "deny": [] + } +} \ No newline at end of file diff --git a/samples/django-channels-redis-postgres/app/Dockerfile b/samples/django-channels-redis-postgres/app/Dockerfile index 50745b40..81dd1a84 100644 --- a/samples/django-channels-redis-postgres/app/Dockerfile +++ b/samples/django-channels-redis-postgres/app/Dockerfile @@ -1,5 +1,5 @@ # Use a smaller base image -FROM python:3.10-slim-buster +FROM python:3.10-slim-bullseye # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 @@ -12,7 +12,8 @@ RUN apt-get update \ && apt-get install -y \ gcc \ python3-dev \ - libpq-dev + libpq-dev \ + netcat-openbsd # Install dependencies COPY requirements.txt /app/ @@ -32,4 +33,4 @@ RUN adduser --disabled-password --gecos '' django USER django # Start server -CMD ["sh", "-c", "python manage.py migrate && daphne -b 0.0.0.0 -p 8000 django_defang.asgi:application"] \ No newline at end of file +CMD ["sh", "-c", "daphne -b 0.0.0.0 -p 8000 django_defang.asgi:application"] diff --git a/samples/django-channels-redis-postgres/compose.dev.yaml b/samples/django-channels-redis-postgres/compose.dev.yaml index 616430ad..c9d65b09 100644 --- a/samples/django-channels-redis-postgres/compose.dev.yaml +++ b/samples/django-channels-redis-postgres/compose.dev.yaml @@ -13,8 +13,16 @@ services: depends_on: - redis-service - postgres-service - command: sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000" + - migrate + command: sh -c "python manage.py runserver 0.0.0.0:8000" + migrate: + extends: + file: compose.yaml + service: migrate + environment: + - POSTGRES_URL=postgres://djangouser:djangopassword@postgres-service:5432/djangodatabase + redis-service: extends: file: compose.yaml diff --git a/samples/django-channels-redis-postgres/compose.yaml b/samples/django-channels-redis-postgres/compose.yaml index 8fd6c2e1..787233bc 100644 --- a/samples/django-channels-redis-postgres/compose.yaml +++ b/samples/django-channels-redis-postgres/compose.yaml @@ -22,6 +22,7 @@ services: depends_on: - redis-service - postgres-service + - migrate redis-service: image: redis:6.2 @@ -31,6 +32,18 @@ services: - mode: host target: 6379 + migrate: + restart: "no" + build: + context: ./app + dockerfile: Dockerfile + command: python manage.py migrate + depends_on: + - postgres-service + environment: + - POSTGRES_URL=postgres://djangouser:${POSTGRES_PASSWORD}@postgres-service:5432/djangodatabase? + - SECRET_KEY + postgres-service: image: postgres:16.4 # uncomment the following line in BYOC diff --git a/samples/rails/compose.yaml b/samples/rails/compose.yaml index b872967f..647bc7e8 100644 --- a/samples/rails/compose.yaml +++ b/samples/rails/compose.yaml @@ -25,6 +25,21 @@ services: retries: 5 depends_on: - db + - migrate + migrate: + restart: "no" + build: + context: ./app + dockerfile: Dockerfile + env_file: + - .env + environment: + POSTGRES_PASSWORD: + command: ["bin/rails", "db:prepare"] + depends_on: + db: + condition: service_healthy + db: restart: unless-stopped image: postgres:16