-
-
Notifications
You must be signed in to change notification settings - Fork 441
/
Dockerfile
30 lines (21 loc) 路 795 Bytes
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Get Go image from DockerHub.
FROM golang:1.21.1@sha256:cffaba795c36f07e372c7191b35ceaae114d74c31c3763d442982e3a4df3b39e AS api
# Set working directory.
WORKDIR /compiler
# Copy dependency locks so we can cache.
COPY go.mod go.sum .
# Get all of our dependencies.
RUN go mod download
# Copy all of our remaining application.
COPY . .
# Build our application.
RUN CGO_ENABLED=0 GOOS=linux go build -o docker-mariadb-clean-arch ./cmd/docker-mariadb-clean-arch/main.go
# Use 'scratch' image for super-mini build.
FROM scratch AS prod
# Set working directory for this stage.
WORKDIR /production
# Copy our compiled executable from the last stage.
COPY --from=api /compiler/docker-mariadb-clean-arch .
# Run application and expose port 8080.
EXPOSE 8080
CMD ["./docker-mariadb-clean-arch"]