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: # DATABASE_URL_1: "mysql://${DB_1}:${DB_PSWD_1}@db:3306/${DB_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: