penguin/AstroJS

Javascript framework for my blog

resolver-go/dockerfiles/api.Dockerfile

raw ยท 822 bytes

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"]