Add BuildKit syntax directive and --network=host flag to npm install, go mod operations, and apk package installation to allow direct host network access during builds, bypassing Docker's default bridge network for improved reliability and performance of dependency downloads.
18 lines
449 B
Docker
18 lines
449 B
Docker
## syntax=docker/dockerfile:1.4
|
|
FROM golang:1.23-alpine AS builder
|
|
WORKDIR /src
|
|
COPY go.mod ./
|
|
COPY go.sum* ./
|
|
COPY . .
|
|
RUN --network=host go mod tidy
|
|
RUN --network=host go mod download
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /out/nexavpn-api ./cmd/api
|
|
|
|
FROM alpine:3.21
|
|
WORKDIR /app
|
|
COPY --from=builder /out/nexavpn-api /usr/local/bin/nexavpn-api
|
|
COPY migrations ./migrations
|
|
COPY seed ./seed
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/usr/local/bin/nexavpn-api"]
|