FROM golang:1.26-alpine as builder

ARG GITLAB_LOGIN
ARG GITLAB_TOKEN
RUN echo "machine gitlab.com login ${GITLAB_LOGIN} password ${GITLAB_TOKEN}" > ~/.netrc

RUN apk update && apk add git && apk add tzdata build-base

COPY . /app
WORKDIR /app

## ENV
ENV CGO_ENABLED=0
ENV GOPRIVATE=gitlab.com/bws-dev/*

## For cgo enabled
# RUN go build -a -mod=mod -ldflags '-w -s -linkmode external -extldflags "-static"' -o sl ./cmd/app

## For cgo disabled
RUN go build -a -mod=mod -ldflags '-w -s' -o sl ./cmd/app

## create binary
FROM scratch
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /app/sl .
ENTRYPOINT ["/sl"]