2024-02-13 18:45:08 +01:00
|
|
|
# Use an official Golang runtime as a parent image
|
2024-05-16 20:43:34 +02:00
|
|
|
FROM golang:latest as build
|
2024-02-13 18:45:08 +01:00
|
|
|
|
|
|
|
|
# Set the working directory to /app
|
|
|
|
|
WORKDIR .
|
|
|
|
|
# Copy the current directory contents into the container at /app
|
2024-05-15 15:49:39 +02:00
|
|
|
COPY . .
|
2024-02-13 18:45:08 +01:00
|
|
|
|
|
|
|
|
# Download and install any required dependencies
|
|
|
|
|
RUN go mod download
|
|
|
|
|
|
2024-05-16 20:43:34 +02:00
|
|
|
# Generate orm
|
|
|
|
|
RUN go generate ./database/ent
|
|
|
|
|
|
2024-02-13 18:45:08 +01:00
|
|
|
# Build the Go app
|
2024-02-13 18:57:05 +01:00
|
|
|
RUN go build .
|
2024-02-13 18:45:08 +01:00
|
|
|
|
2024-05-16 20:43:34 +02:00
|
|
|
FROM gcr.io/distroless/base-debian12
|
|
|
|
|
|
|
|
|
|
COPY --from=build /go/portfolio .
|
|
|
|
|
|
2025-02-25 21:52:04 +01:00
|
|
|
COPY .env .env
|
|
|
|
|
|
2024-05-18 12:10:29 +02:00
|
|
|
ADD ./web/assets ./web/assets
|
2024-02-14 12:39:10 +01:00
|
|
|
|
2024-02-13 18:45:08 +01:00
|
|
|
# Expose port 8080 for incoming traffic
|
2024-05-16 18:55:03 +02:00
|
|
|
EXPOSE 4000
|
2024-05-16 18:42:31 +02:00
|
|
|
EXPOSE 4001
|
2024-02-13 18:45:08 +01:00
|
|
|
|
|
|
|
|
# Define the command to run the app when the container starts
|
2025-01-04 12:54:26 +01:00
|
|
|
CMD ["./portfolio"]
|