123456789101112131415161718192021222324252627282930 |
- # Define argument for linker flags
- ARG LDFLAGS=-s -w
- # Use a temporary build image based on Golang 1.20-alpine
- FROM golang:1.24-alpine as builder
- # Set environment variables: linker flags and disable CGO
- ENV LDFLAGS=$LDFLAGS CGO_ENABLED=0
- # Add the current directory contents to the work directory in the container
- ADD . /work
- # Set the current work directory inside the container
- WORKDIR /work
- # Install git and build the edgevpn binary with the provided linker flags
- # --no-cache flag ensures the package cache isn't stored in the layer, reducing image size
- RUN apk add --no-cache git && \
- go build -ldflags="$LDFLAGS" -o edgevpn
- # TODO: move to distroless
- # Use a new, clean alpine image for the final stage
- FROM alpine
- # Copy the edgevpn binary from the builder stage to the final image
- COPY --from=builder /work/edgevpn /usr/bin/edgevpn
- # Define the command that will be run when the container is started
- ENTRYPOINT ["/usr/bin/edgevpn"]
|