forked from ddollar/forego
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Dockerfile.alpine
42 lines (29 loc) · 907 Bytes
/
Dockerfile.alpine
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ARG FOREGO_VERSION=main
# Build forego
FROM --platform=$BUILDPLATFORM golang:1.22.3-alpine as go-builder
ENV CGO_ENABLED=0
ARG FOREGO_VERSION TARGETOS TARGETARCH TARGETVARIANT
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT
RUN apk add --no-cache musl-dev
WORKDIR /build
# Install the dependencies
COPY . .
RUN go mod download
RUN set -eu; \
case "$GOARCH" in \
arm) export GOARM="${VARIANT#v}" ;; \
amd64) export GOAMD64="$VARIANT" ;; \
*) [ -z "$VARIANT" ] ;; \
esac; \
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
go build -ldflags "-X main.buildVersion=${FOREGO_VERSION}" -o forego .; \
go clean -cache
FROM --platform=$TARGETPLATFORM alpine:3.20.0
ARG FOREGO_VERSION
ENV FOREGO_VERSION=${FOREGO_VERSION}
RUN apk add --no-cache bash
# Install Forego
COPY --from=go-builder /build/forego /usr/local/bin/forego
COPY /app /app
WORKDIR /app
CMD ["forego", "start", "-r"]