mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-10-08 05:25:34 +00:00
Bumps node from 24-slim to 25-slim. --- updated-dependencies: - dependency-name: node dependency-version: 25-slim dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
107 lines
3.2 KiB
YAML
107 lines
3.2 KiB
YAML
# Local development only. Production is not deployed with this file.
|
|
services:
|
|
db:
|
|
image: postgres:18.6
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${DATABASE_NAME}
|
|
POSTGRES_USER: ${DATABASE_USERNAME}
|
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
|
# postgres 18+ defaults PGDATA to a versioned subdirectory; pin it so the volume below holds the data
|
|
PGDATA: /var/lib/postgresql/data
|
|
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
pyrigs:
|
|
build:
|
|
context: .
|
|
target: dev
|
|
restart: unless-stopped
|
|
environment:
|
|
SECRET_KEY: ${SECRET_KEY}
|
|
DJANGO_ALLOWED_HOSTS: ${DJANGO_ALLOWED_HOSTS}
|
|
DOMAIN: ${DOMAIN:-example.com}
|
|
DEBUG: ${DEBUG:-true}
|
|
STAGING: ${STAGING:-false}
|
|
SESSION_COOKIE_SECURE_ENABLED: ${SESSION_COOKIE_SECURE_ENABLED:-true}
|
|
CSRF_COOKIE_SECURE_ENABLED: ${CSRF_COOKIE_SECURE_ENABLED:-true}
|
|
FORUM_WEBHOOK_SECRET: ${FORUM_WEBHOOK_SECRET}
|
|
DATABASE_ENGINE: ${DATABASE_ENGINE:-postgresql}
|
|
DATABASE_NAME: ${DATABASE_NAME}
|
|
DATABASE_USERNAME: ${DATABASE_USERNAME}
|
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
|
|
DATABASE_HOST: ${DATABASE_HOST:-db}
|
|
DATABASE_PORT: ${DATABASE_PORT:-5432}
|
|
EMAIL_HOST: ${EMAIL_HOST}
|
|
EMAIL_PORT: ${EMAIL_PORT:-25}
|
|
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
|
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
|
EMAIL_USE_TLS: ${EMAIL_USE_TLS:-false}
|
|
EMAIL_USE_SSL: ${EMAIL_USE_SSL:-false}
|
|
EMAIL_FROM: ${EMAIL_FROM}
|
|
HCAPTCHA_SITEKEY: ${HCAPTCHA_SITEKEY:-10000000-ffff-ffff-ffff-000000000001}
|
|
HCAPTCHA_SECRET: ${HCAPTCHA_SECRET:-0x0000000000000000000000000000000000000000}
|
|
SENTRY_DSN: ${SENTRY_DSN:-}
|
|
ports:
|
|
- "8000:8000"
|
|
|
|
volumes:
|
|
# The source is mounted rather than copied: the Django dev server reloads on every change
|
|
- .:/app
|
|
|
|
healthcheck:
|
|
# the dev server only starts listening once migrations have finished
|
|
test: [ "CMD", "python", "-c", "import socket; socket.create_connection(('127.0.0.1', 8000), 2).close()" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
python manage.py migrate --noinput &&
|
|
exec python manage.py runserver 0.0.0.0:8000
|
|
|
|
develop:
|
|
watch:
|
|
# `docker compose watch` rebuilds the image when the dependencies change
|
|
- action: rebuild
|
|
path: ./pyproject.toml
|
|
- action: rebuild
|
|
path: ./uv.lock
|
|
|
|
# Rebuilds the CSS/JS bundles into pipeline/built_assets whenever the sources change
|
|
assets:
|
|
image: node:25-slim
|
|
working_dir: /app
|
|
volumes:
|
|
- .:/app
|
|
- node_modules:/app/node_modules
|
|
- npm_cache:/root/.npm
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
if [ ! -d node_modules/.bin ] || [ package-lock.json -nt node_modules/.package-lock.json ]; then
|
|
npm ci
|
|
fi
|
|
exec npx gulp watchAssets
|
|
|
|
volumes:
|
|
postgres_data:
|
|
node_modules:
|
|
npm_cache:
|