Files
AstroJS/resolver-go/dockerfiles/api.Dockerfile
T
2026-06-12 13:05:32 +08:00

34 lines
827 B
Docker

FROM golang:1.26-alpine3.23 AS build
WORKDIR /workspace
ARG TARGETOS
ARG TARGETARCH
COPY resolver-go/go.mod resolver-go/go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod \
go mod download
COPY "botanjs/src" "./src"
COPY "resolver-go/cmd" "./cmd"
COPY "resolver-go/internal" "./internal"
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 \
GOOS=$TARGETOS \
GOARCH=$TARGETARCH \
go build -trimpath -o /out/api-server -ldflags='-s -w' ./cmd/api-server
RUN mkdir -p /out/tmp && chmod 1777 /out/tmp
FROM scratch
COPY --from=build /out/api-server /usr/local/bin/api-server
COPY --from=build /workspace/src "./src"
COPY --from=build /out/tmp /tmp
EXPOSE 8080/tcp
ENTRYPOINT ["/usr/local/bin/api-server", "-src", "./src", "-addr", ":8080"]