services: db: image: postgis/postgis:17-3.5 container_name: momswap-backend-db environment: POSTGRES_DB: "${POSTGRES_DB:-momswap}" POSTGRES_USER: "${POSTGRES_USER:-momswap}" POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:-momswap}" ports: - "5432:5432" volumes: - ./var/posrgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-momswap} -d ${POSTGRES_DB:-momswap}"] interval: 10s timeout: 5s retries: 10 start_period: 10s restart: unless-stopped api: build: context: . dockerfile: Dockerfile target: runtime cache_from: - type=local,src=.docker/buildx-cache cache_to: - type=local,dest=.docker/buildx-cache,mode=max image: momswap-backend:latest container_name: momswap-backend-api environment: ADDR: ":8080" ADMIN_PUBLIC_KEY: "${ADMIN_PUBLIC_KEY:-}" DATABASE_URL: "postgres://${POSTGRES_USER:-momswap}:${POSTGRES_PASSWORD:-momswap}@db:5432/${POSTGRES_DB:-momswap}?sslmode=disable" depends_on: db: condition: service_healthy ports: - "8080:8080" restart: unless-stopped api-dev: profiles: ["dev"] build: context: . dockerfile: Dockerfile target: dev cache_from: - type=local,src=.docker/buildx-cache cache_to: - type=local,dest=.docker/buildx-cache,mode=max image: momswap-backend:dev container_name: momswap-backend-api-dev environment: ADDR: ":8080" ADMIN_PUBLIC_KEY: "${ADMIN_PUBLIC_KEY:-}" DATABASE_URL: "postgres://${POSTGRES_USER:-momswap}:${POSTGRES_PASSWORD:-momswap}@db:5432/${POSTGRES_DB:-momswap}?sslmode=disable" depends_on: db: condition: service_healthy ports: - "8080:8080" restart: unless-stopped develop: watch: - action: sync+restart path: ./web target: /src/web - action: sync+restart path: ./internal target: /src/internal - action: sync+restart path: ./cmd target: /src/cmd - action: rebuild path: ./go.mod - action: rebuild path: ./Dockerfile