Testing multi-stage build and single file docker image
All checks were successful
package-builder / build (push) Successful in 1m59s
go-builder / build (push) Successful in 35s

This commit is contained in:
Kris Crawford 2024-06-21 17:38:01 -04:00
parent f34b6512ad
commit c7250311cf
2 changed files with 10 additions and 9 deletions

View File

@ -1,10 +1,8 @@
# specify the base image to be used for the application # Build stage
FROM golang:1.21.4-alpine FROM golang:1.21.4-alpine AS builder
# create the working directory in the image
WORKDIR /app WORKDIR /app
# copy Go modules and dependencies to image
COPY go.mod ./ COPY go.mod ./
# download Go modules and dependencies # download Go modules and dependencies
@ -13,11 +11,14 @@ RUN go mod download
# copy all the Go files ending with .go extension # copy all the Go files ending with .go extension
COPY *.go ./ COPY *.go ./
# compile application RUN go build -o golang-http-header
RUN go build -o /golang-http-header
# Final stage
FROM scratch
COPY --from=builder /app/golang-http-header /
# network port at runtime # network port at runtime
EXPOSE 8000 EXPOSE 8000
# execute when the container starts
CMD ["/golang-http-header"] CMD ["/golang-http-header"]

View File

@ -22,7 +22,7 @@ spec:
spec: spec:
containers: containers:
- name: http-header - name: http-header
image: git.kcrawford.net/kcrawford/golang-http-header:0.0.5 image: git.kcrawford.net/kcrawford/golang-http-header:0.0.3
ports: ports:
- containerPort: 8000 - containerPort: 8000