mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-10 18:48:44 +00:00
chore: set up docker buildx bake
Closes #417 Closes #584 Closes #658 Closes #630 Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
54
docker/anubis.Dockerfile
Normal file
54
docker/anubis.Dockerfile
Normal file
@@ -0,0 +1,54 @@
|
||||
ARG ALPINE_VERSION=edge
|
||||
FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS build
|
||||
|
||||
RUN apk -U add go nodejs git build-base git npm bash zstd brotli gzip
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
RUN \
|
||||
--mount=type=cache,target=/root/.cache \
|
||||
--mount=type=cache,target=/root/go \
|
||||
go mod download
|
||||
|
||||
COPY package.json package-lock.json ./
|
||||
RUN \
|
||||
--mount=type=cache,target=/app/node_modules \
|
||||
npm ci
|
||||
|
||||
COPY . .
|
||||
RUN \
|
||||
--mount=type=cache,target=/root/.cache \
|
||||
--mount=type=cache,target=/root/go \
|
||||
--mount=type=cache,target=/app/node_modules \
|
||||
npm run assets
|
||||
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
ARG VERSION=devel-docker
|
||||
|
||||
RUN \
|
||||
--mount=type=cache,target=/root/.cache \
|
||||
--mount=type=cache,target=/root/go \
|
||||
--mount=type=cache,target=/app/node_modules \
|
||||
GOOS=${TARGETOS} \
|
||||
GOARCH=${TARGETARCH} \
|
||||
CGO_ENABLED=0 \
|
||||
GOARM=7 \
|
||||
go build \
|
||||
-gcflags "all=-N -l" \
|
||||
-o /app/bin/anubis \
|
||||
-ldflags "-s -w -extldflags -static -X github.com/TecharoHQ/anubis.Version=${VERSION}" \
|
||||
./cmd/anubis
|
||||
|
||||
FROM alpine:${ALPINE_VERSION} AS run
|
||||
WORKDIR /app
|
||||
|
||||
RUN apk -U add ca-certificates mailcap
|
||||
|
||||
COPY --from=build /app/bin/anubis /app/bin/anubis
|
||||
|
||||
CMD ["/app/bin/anubis"]
|
||||
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "/app/bin/anubis", "--healthcheck" ]
|
||||
|
||||
LABEL org.opencontainers.image.source="https://github.com/TecharoHQ/anubis"
|
||||
Reference in New Issue
Block a user