2025-02-21 19:37:35 +01:00
|
|
|
FROM golang:1.24-alpine AS builder
|
2021-11-10 20:06:12 +01:00
|
|
|
|
2021-11-11 17:09:05 +01:00
|
|
|
ARG ARG_VERSION
|
2024-08-26 19:51:37 +02:00
|
|
|
ENV VERSION=$ARG_VERSION
|
2021-11-11 17:09:05 +01:00
|
|
|
|
2021-11-10 20:06:12 +01:00
|
|
|
WORKDIR /app
|
2024-04-12 19:26:48 +02:00
|
|
|
COPY go.mod .
|
|
|
|
COPY go.sum .
|
|
|
|
RUN --mount=type=cache,target=/go/pkg/mod/ go mod download -x
|
2021-11-10 20:06:12 +01:00
|
|
|
COPY . .
|
|
|
|
|
2024-04-12 19:26:48 +02:00
|
|
|
FROM builder AS build-dev-app
|
|
|
|
# hadolint ignore=DL3018
|
|
|
|
RUN --mount=type=cache,target=/go/pkg/mod/ apk --no-cache add make && make build
|
2021-11-10 20:06:12 +01:00
|
|
|
|
2024-04-12 19:26:48 +02:00
|
|
|
FROM builder AS build-prod-app
|
|
|
|
# hadolint ignore=DL3018
|
2025-02-21 19:37:35 +01:00
|
|
|
RUN apk --no-cache update && apk add --no-cache ca-certificates make upx \
|
|
|
|
&& update-ca-certificates \
|
2024-04-12 19:26:48 +02:00
|
|
|
&& make build \
|
|
|
|
&& upx --best --lzma whatismyip
|
2021-11-10 20:06:12 +01:00
|
|
|
|
2024-04-12 19:26:48 +02:00
|
|
|
FROM scratch AS dev
|
|
|
|
COPY --from=build-dev-app /app/whatismyip /usr/bin/
|
|
|
|
ENTRYPOINT ["whatismyip"]
|
2021-11-10 20:06:12 +01:00
|
|
|
|
2024-04-12 19:26:48 +02:00
|
|
|
FROM scratch AS prod
|
|
|
|
COPY --from=build-prod-app /app/whatismyip /usr/bin/
|
2021-11-10 20:06:12 +01:00
|
|
|
ENTRYPOINT ["whatismyip"]
|