version: "3.7" networks: net: volumes: pgdata: staticdata: x-op-service-default: &service_default restart: always # unless-stopped init: true services: ntpd: <<: *service_default build: context: ./ntpd image: daniviga/ntpd networks: - net ports: - "123:123/udp" timescale: <<: *service_default image: timescale/timescaledb:latest-pg12 environment: POSTGRES_USER: "bite" POSTGRES_PASSWORD: "password" volumes: - "pgdata:/var/lib/postgresql/data" networks: - net broker: <<: *service_default image: eclipse-mosquitto networks: - net ports: - "1883:1883" ingress: <<: *service_default image: nginx:stable-alpine ports: - "80:80" networks: - net volumes: - staticdata:/srv/appdata/bite/static - ./ingress/nginx.conf:/etc/nginx/nginx.conf bite: <<: *service_default build: context: .. dockerfile: ./docker/django/Dockerfile image: daniviga/bite command: ["gunicorn", "-b", "0.0.0.0:8000", "bite.wsgi:application"] networks: - net depends_on: - ingress - data-migration - timescale data-migration: image: daniviga/bite command: ["dockerize", "-wait", "tcp://timescale:5432", "python3", "manage.py", "migrate", "--noinput"] networks: - net depends_on: - timescale static-files: image: daniviga/bite volumes: - staticdata:/srv/appdata/bite/static command: ["python3", "manage.py", "collectstatic", "--noinput"] mqtt-to-db: <<: *service_default image: daniviga/bite command: ["python3", "manage.py", "mqtt-to-db"] networks: - net depends_on: - data-migration - timescale - broker