takahe/docker/docker-compose.yml

82 lines
2.0 KiB
YAML
Raw Normal View History

version: "3.4"
2022-11-23 10:29:32 -08:00
# DO NOT USE THIS IN PRODUCTION - it is for development only due to insecure
# settings and the use of "runserver" versus "gunicorn".
2022-12-20 03:50:28 -08:00
# See https://docs.jointakahe.org/en/latest/installation/ for more
2022-11-23 10:29:32 -08:00
x-takahe-common:
&takahe-common
build:
context: ..
dockerfile: ./docker/Dockerfile
image: takahe:latest
environment:
2022-11-27 09:54:01 -08:00
TAKAHE_DATABASE_SERVER: "postgres://postgres:insecure_password@db/takahe"
TAKAHE_DEBUG: "true"
TAKAHE_SECRET_KEY: "insecure_secret"
TAKAHE_CSRF_HOSTS: '["http://127.0.0.1:8000", "https://127.0.0.1:8000"]'
2022-11-27 09:54:01 -08:00
TAKAHE_USE_PROXY_HEADERS: "true"
TAKAHE_EMAIL_BACKEND: "console://console"
TAKAHE_MAIN_DOMAIN: "example.com"
TAKAHE_ENVIRONMENT: "development"
GUNICORN_EXTRA_CMD_ARGS: "--reload"
networks:
- external_network
- internal_network
restart: on-failure
depends_on:
- db
volumes:
- ..:/takahe/
2022-11-08 20:05:51 -08:00
services:
db:
2022-11-27 09:54:01 -08:00
image: docker.io/postgres:15-alpine
2022-11-08 20:05:51 -08:00
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
ports:
- "5433:5432"
2022-11-08 20:05:51 -08:00
web:
<<: *takahe-common
healthcheck:
test: ["CMD", "nc", "-z", "-v", "localhost", "8000"]
interval: 20s
timeout: 60s
start_period: 15s
2022-11-08 20:05:51 -08:00
ports:
- "8000:8000"
depends_on:
setup:
condition: service_completed_successfully
2022-11-27 09:54:01 -08:00
stator:
<<: *takahe-common
command: ["/takahe/manage.py", "runstator"]
depends_on:
setup:
condition: service_completed_successfully
2022-11-27 09:54:01 -08:00
setup:
<<: *takahe-common
restart: "no"
command: >
bash -c "/takahe/manage.py migrate && /takahe/manage.py collectstatic --noinput"
2022-11-08 20:05:51 -08:00
networks:
internal_network:
external_network:
volumes:
dbdata: