FROM golang:1.26-alpine3.23 AS build WORKDIR /workspace ARG TARGETOS ARG TARGETARCH COPY botanres-go/go.mod botanres-go/go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY "botanjs/src" "./src" COPY "botanres-go/cmd" "./cmd" COPY "botanres-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 FROM scratch COPY --from=build /out/botan-api /usr/local/bin/botan-api COPY "botanjs/src" "./src" EXPOSE 8080/tcp ENTRYPOINT ["/usr/local/bin/botan-api", "-src", "./src", "-addr", ":8080"]