# Use an official Go runtime as a parent image FROM golang:1.22.7-alpine as builder # Set the working directory inside the container WORKDIR /app # Copy the Go application code into the container COPY . . # Build the Go app, outputting an executable named "app" RUN go build -o app . # Use a minimal base image to run the app, keeping the image small FROM alpine:latest # Set the working directory inside the container WORKDIR /root/ # Copy the binary from the builder image COPY --from=builder /app/app . # Copy any necessary static files (if any are in your static folder) COPY --from=builder /app/static ./static # Expose the port the app runs on EXPOSE 8080 # Run the app when the container starts CMD ["./app"]