30 lines
601 B
Text
30 lines
601 B
Text
|
|
FROM golang:alpine
|
||
|
|
|
||
|
|
# Set necessary environmet variables needed for our image
|
||
|
|
ENV GO111MODULE=on \
|
||
|
|
CGO_ENABLED=0 \
|
||
|
|
GOOS=linux \
|
||
|
|
GOARCH=amd64
|
||
|
|
|
||
|
|
# Move to working directory /build
|
||
|
|
WORKDIR /build
|
||
|
|
|
||
|
|
# Copy the code from /app to the build folder into the container
|
||
|
|
COPY . .
|
||
|
|
|
||
|
|
# Configure the build (go.mod and go.sum are already copied with prior step)
|
||
|
|
RUN go mod download
|
||
|
|
|
||
|
|
# Build the application
|
||
|
|
RUN go build -o main .
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Copy binary from build to main folder
|
||
|
|
RUN cp /build/main .
|
||
|
|
|
||
|
|
# Export necessary port
|
||
|
|
EXPOSE 8080
|
||
|
|
|
||
|
|
# Command to run when starting the container
|
||
|
|
CMD ["/app/main"]
|