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}" 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 image: momswap-backend:latest container_name: momswap-backend-api env_file: - etc/server-service.env environment: ADDR: ":8122" ADMIN_PUBLIC_KEY: "${ADMIN_PUBLIC_KEY:-}" DATABASE_URL: "postgres://${POSTGRES_USER:-momswap}:${POSTGRES_PASSWORD:-momswap}@db:5432/${POSTGRES_DB:-momswap}?sslmode=disable" volumes: - ./etc:/app/etc:ro depends_on: db: condition: service_healthy ports: - "8122:8122" restart: unless-stopped api-dev: profiles: ["dev"] build: context: . dockerfile: Dockerfile target: dev image: momswap-backend:dev container_name: momswap-backend-api-dev env_file: - etc/server-service.env environment: ADDR: ":8122" ADMIN_PUBLIC_KEY: "${ADMIN_PUBLIC_KEY:-}" DATABASE_URL: "postgres://${POSTGRES_USER:-momswap}:${POSTGRES_PASSWORD:-momswap}@db:5432/${POSTGRES_DB:-momswap}?sslmode=disable" volumes: - ./etc:/src/etc:ro depends_on: db: condition: service_healthy ports: - "8122:8122" 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 test: build: context: . dockerfile: Dockerfile target: test image: momswap-backend:test volumes: - .:/src working_dir: /src user: root profiles: - test