snow/Dockerfile

29 lines
614 B
Docker
Raw Normal View History

2024-05-19 11:53:21 +00:00
# Stage 1: Build Binary
FROM golang:1.22 AS builder
2024-05-15 00:20:23 +00:00
WORKDIR /app
2024-05-19 11:53:21 +00:00
# Download Dependencies
2024-05-15 00:20:23 +00:00
COPY go.mod go.sum ./
2024-05-19 11:53:21 +00:00
RUN --mount=type=cache,target=/root/.cache/go-build \
go mod download
# Setup and Build
2024-05-15 00:27:16 +00:00
COPY . ./
2024-05-19 11:53:21 +00:00
RUN --mount=type=bind \
CGO_ENABLED=0 GOOS=linux go build -o /snow
# Stage 2: Deploy Binary
FROM busybox:1.36-glibc as busybox
FROM gcr.io/distroless/base AS deploy
WORKDIR /app
# Copy binaries from Busybox
COPY --from=busybox /bin /bin
# Setup user
RUN adduser -D -h /app snow
RUN chown snow /app
COPY --from=builder --chown=snow --chmod=700 /snow /app/snow
2024-05-15 00:20:23 +00:00
EXPOSE 3000
2024-05-19 11:53:21 +00:00
ENTRYPOINT ["/app/snow"]