takahe/docker/docker-compose.yml

66 lines
1.5 KiB
YAML

version: "3.4"
# DO NOT USE THIS IN PRODUCTION - it is for development only due to insecure
# settings and the use of "runserver" versus "gunicorn".
# See https://takahe-server.readthedocs.io/en/latest/installation.html for more
x-takahe-common:
&takahe-common
build:
context: ..
dockerfile: ./docker/Dockerfile
image: takahe:latest
environment:
TAKAHE_DATABASE_SERVER: "postgres://postgres:insecure_password@db/takahe"
TAKAHE_DEBUG: "true"
TAKAHE_SECRET_KEY: "insecure_secret"
TAKAHE_CSRF_TRUSTED_ORIGINS: '["http://127.0.0.1:8000", "https://127.0.0.1:8000"]'
TAKAHE_USE_PROXY_HEADERS: "true"
TAKAHE_EMAIL_BACKEND: "console://console"
TAKAHE_MAIN_DOMAIN: "example.com"
TAKAHE_ENVIRONMENT: "development"
networks:
- external_network
- internal_network
restart: on-failure
depends_on:
- db
volumes:
- ..:/takahe/
services:
db:
image: docker.io/postgres:15-alpine
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
volumes:
- dbdata:/var/lib/postgresql/data
networks:
- internal_network
restart: always
environment:
POSTGRES_DB: takahe
POSTGRES_USER: postgres
POSTGRES_PASSWORD: insecure_password
web:
<<: *takahe-common
ports:
- "8000:8000"
stator:
<<: *takahe-common
command: ["/takahe/manage.py", "runstator"]
setup:
<<: *takahe-common
command: ["/takahe/manage.py", "migrate"]
networks:
internal_network:
external_network:
volumes:
dbdata: