31 lines
		
	
	
		
			726 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			726 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
 | 
						|
# 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"]
 |