38 lines
806 B
Docker
38 lines
806 B
Docker
ARG GO_VERSION=1.26.2
|
|
|
|
FROM golang:${GO_VERSION}-bookworm AS builder
|
|
|
|
WORKDIR /src
|
|
|
|
# bimg uses CGO and needs libvips headers while building.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
git \
|
|
pkg-config \
|
|
libvips-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o /bin/ginimageapi .
|
|
|
|
FROM debian:bookworm-slim AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
# libvips runtime is required by bimg.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
libvips \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /bin/ginimageapi /app/ginimageapi
|
|
COPY --from=builder /src/static /app/static
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["/app/ginimageapi"]
|