services: proxy: image: traefik:v2.11 command: --providers.docker ports: - 80:80 volumes: - /var/run/docker.sock:/var/run/docker.sock backend: build: context: .. dockerfile: SerpentRace_Docker/Dockerfile target: prod environment: NODE_ENV: "development" DB_HOST: "db" DB_PORT: "3306" DATABASE_NAME_1: "${DB_1}" DATABASE_PSWD_1: "${DB_PSWD_1}" # DATABASE_URL_2: "mysql://${DB_2}:${DB_PSWD_2}@db:3306/${DB_2}" # DATABASE_URL_3: "mysql://${DB_3}:${DB_PSWD_3}@db:3306/${DB_3}" # DATABASE_URL_4: "mysql://${DB_4}:${DB_PSWD_4}@db:3306/${DB_4}" command: ["npx", "nodemon", "src/index.ts", "--watch", "src", "--ext", "ts"] develop: watch: - path: ../SerpentRace_Backend/src action: sync target: /usr/local/app/backend/src - path: ../SerpentRace_Backend/prisma action: sync target: /usr/local/app/backend/prisma actions: - migrate:all - path: ../SerpentRace_Backend/package.json action: rebuild labels: traefik.http.routers.backend.rule: Host(`api.localhost`) traefik.http.services.backend.loadbalancer.server.port: 3000 depends_on: - db frontend: build: context: .. dockerfile: SerpentRace_Docker/Dockerfile target: client-build command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"] working_dir: /usr/local/app/frontend develop: watch: - path: ../SerpentRace_Frontend/src action: sync target: /usr/local/app/frontend/src - path: ../SerpentRace_Frontend/package.json action: rebuild labels: traefik.http.routers.frontend.rule: Host(`localhost`) traefik.http.services.frontend.loadbalancer.server.port: 5173 db: image: mariadb:latest restart: always environment: MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_DATABASE: ${DB_1} MYSQL_USER: ${Default_User} MYSQL_PASSWORD: ${Default_Password} DB_1: ${DB_1} DB_2: ${DB_2} DB_3: ${DB_3} DB_4: ${DB_4} PSWD_1: ${DB_PSWD_1} PSWD_2: ${DB_PSWD_2} PSWD_3: ${DB_PSWD_3} PSWD_4: ${DB_PSWD_4} volumes: # - ./init-multi-db.sh:/docker-entrypoint-initdb.d/init-multi-db.sh:ro # - ./init-db-users.sh:/docker-entrypoint-initdb.d/init-db-users.sh:ro - db_data:/var/lib/mysql adminer: image: adminer restart: always labels: traefik.http.routers.adminer.rule: Host(`db.localhost`) traefik.http.services.adminer.loadbalancer.server.port: 8080 volumes: db_data: