services: db: container_name: arcadia_db image: postgres restart: always # set shared memory limit when using docker-compose shm_size: 128mb # or set shared memory limit when deploy via swarm stack #volumes: # - type: tmpfs # target: /dev/shm # tmpfs: # size: 134217728 # 128*2^20 bytes = 128Mb volumes: # - ./volumes/postgres-data/:/var/lib/postgresql/data/ - db_data:/var/lib/postgresql/data/ ports: - 5432:5432 env_file: - backend/.env.docker - backend/.env healthcheck: test: ["CMD-SHELL", "pg_isready -U arcadia"] interval: 5s timeout: 5s retries: 5 init_db: container_name: init_db env_file: - backend/.env.docker - backend/.env build: context: backend dockerfile: Dockerfile target: prebuild command: sh -c "/init_db.sh" working_dir: /app volumes: - ./backend/scripts/init_db.sh:/init_db.sh depends_on: db: condition: service_healthy backend: container_name: arcadia_backend volumes: - cargo-registry:/usr/local/cargo/registry - cargo-target:/app/target build: context: backend dockerfile: Dockerfile ports: - "8080:8080" env_file: - backend/.env.docker - backend/.env develop: watch: - path: ./backend action: rebuild include: - src/**/* - vendored/**/* - Cargo.toml - Cargo.lock - path: ./backend action: restart include: - .env - .env.docker frontend: container_name: arcadia_frontend build: context: frontend dockerfile: Dockerfile ports: - 5173:80 env_file: - frontend/.env develop: watch: - path: ./frontend/dist action: sync target: /usr/share/nginx/html - path: ./frontend/docker/nginx.conf action: sync+restart target: /etc/nginx/conf.d/default.conf tracker: container_name: extracker build: context: https://github.com/dahrkael/ExTracker.git dockerfile: Dockerfile args: - RELEASE_NAME=extracker ports: # announce ports - 6969:6969/tcp # HTTP port - 6969:6969/udp # UDP port - 7070:7070/tcp # HTTPS port # tracker api ports - 8081:8081 # TODO: remove the next line network_mode: host volumes: - extracker_backups:/backups - extracker_config:/config env_file: - tracker/extracker/.env.docker - tracker/extracker/.env volumes: db_data: cargo-registry: cargo-target: extracker_backups: extracker_config: