Files
backend/Dockerfile
Andriy Oblivantsev c2aa716ed8
CI / test (push) Successful in 5s
Switch local API port to 8122 and keep DB internal.
Update runtime defaults, compose mappings, frontend defaults, and developer docs to use port 8122 while keeping PostGIS reachable only via the internal compose network.

Made-with: Cursor
2026-03-01 12:12:44 +00:00

39 lines
849 B
Docker

# syntax=docker/dockerfile:1.7
FROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS base
ARG TARGETOS
ARG TARGETARCH
WORKDIR /src
RUN apt-get update && apt-get install -y --no-install-recommends \
git ca-certificates && rm -rf /var/lib/apt/lists/*
COPY go.mod ./
RUN --mount=type=cache,target=/go/pkg/mod \
go mod download
COPY . .
FROM base AS builder
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} \
go build -p "$(nproc)" -trimpath -ldflags="-s -w" -o /out/api ./cmd/api
FROM base AS dev
ENV ADDR=:8122
EXPOSE 8122
CMD ["go", "run", "./cmd/api"]
FROM gcr.io/distroless/static-debian12:nonroot AS runtime
WORKDIR /app
COPY --from=builder /out/api /app/api
ENV ADDR=:8122
EXPOSE 8122
ENTRYPOINT ["/app/api"]