forked from Botanical/BotanJS
34 lines
822 B
Docker
34 lines
822 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/botan-api -ldflags='-s -w' ./cmd/botan-api
|
|
|
|
RUN mkdir -p /out/tmp && chmod 1777 /out/tmp
|
|
|
|
FROM scratch
|
|
|
|
COPY --from=build /out/botan-api /usr/local/bin/botan-api
|
|
COPY --from=build /workspace/src "./src"
|
|
COPY --from=build /out/tmp /tmp
|
|
|
|
EXPOSE 8080/tcp
|
|
ENTRYPOINT ["/usr/local/bin/botan-api", "-src", "./src", "-addr", ":8080"]
|