version: "3.7" x-takahe-common: &takahe-common image: manfre/takahe-dev:emoji volumes: - $PWD/.env:/takahe/.env networks: - web - dbnet depends_on: - db environment: - "TAKAHE_CACHES_DEFAULT=pymemcache://memcache:11211" services: db: container_name: takahe-db image: docker.io/postgres:15-alpine healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] volumes: - $PWD/pgdata:/var/lib/postgresql/data networks: - dbnet restart: always environment: - POSTGRES_USER=$PGUSER - POSTGRES_PASSWORD=$PGPASSWORD - POSTGRES_DB=$PGDATABASE memcache: container_name: takahe-cache image: memcached:1.6-alpine networks: - dbnet restart: always expose: - "11211" web: <<: *takahe-common container_name: takahe-web restart: always expose: - "8000" stator: <<: *takahe-common container_name: takahe-stator restart: always command: ["/takahe/manage.py", "runstator"] setup: <<: *takahe-common container_name: takahe-setup networks: - dbnet restart: on-failure command: ["/takahe/manage.py", "migrate"] collectstatic: <<: *takahe-common container_name: takahe-collectstatic command: ["/takahe/manage.py", "collectstatic", "--no-input"] volumes: - $PWD/static-collected:/takahe/static-collected - $PWD/.env:/takahe/.env networks: - dbnet restart: on-failure networks: dbnet: internal: true web: name: caddy_web external: true