Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: use distroless Debian image as base
Browse files Browse the repository at this point in the history
I managed to workaround building a distroless image with Earthly, and
this produces a slim 20MB image. :)

It also adds a volume for Disco data. I'll document a recommended workflow
with Podman shortly.

Part of #9
imiric committed Apr 22, 2024
1 parent ab80933 commit 160595b
Showing 2 changed files with 30 additions and 26 deletions.
14 changes: 14 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM gcr.io/distroless/static-debian12

# NOTE: This file is meant to be used with Earthly and can't be used on its own
# to build Disco images.

USER nonroot

ENV DISCO_DATA_DIR=/opt/disco

WORKDIR $DISCO_DATA_DIR

VOLUME $DISCO_DATA_DIR

EXPOSE 2020
42 changes: 16 additions & 26 deletions Earthfile
Original file line number Diff line number Diff line change
@@ -78,49 +78,39 @@ build:

build-oci-linux-amd64:
BUILD +build
ARG tags="latest"
ARG latest=""

FROM --platform=linux/amd64 ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y ca-certificates
FROM DOCKERFILE --platform=linux/amd64 .
COPY +build/dist/disco-*-linux-amd64/disco /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/disco"]

FOR tag IN "$tags"
SAVE IMAGE --push hackfixme/disco:"$tag"
END
IF [ -n "$latest" ]
SAVE IMAGE --push hackfixme/disco:latest
END


build-oci-linux-arm64:
BUILD +build
ARG tags="latest"
ARG latest=""

FROM --platform=linux/arm64 ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y ca-certificates
FROM DOCKERFILE --platform=linux/arm64 .
COPY +build/dist/disco-*-linux-arm64/disco /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/disco"]

FOR tag IN "$tags"
SAVE IMAGE --push hackfixme/disco:"$tag"
END
IF [ -n "$latest" ]
SAVE IMAGE --push hackfixme/disco:latest
END


build-oci:
BUILD +build
FROM +build
ARG tags="latest"
ARG latest=""
BUILD +build-oci-linux-amd64 --tags="$tags" --latest="$latest"
BUILD +build-oci-linux-arm64 --tags="$tags" --latest="$latest"

FOR tag IN "$tags"
FROM +build-oci-linux-amd64
SAVE IMAGE --push hackfixme/disco:"$tag"
FROM +build-oci-linux-arm64
SAVE IMAGE --push hackfixme/disco:"$tag"
END
FROM busybox
IF [ -n "$latest" ]
FROM +build-oci-linux-amd64
SAVE IMAGE --push hackfixme/disco:latest
FROM +build-oci-linux-arm64
SAVE IMAGE --push hackfixme/disco:latest
END


publish-oci:

0 comments on commit 160595b

Please sign in to comment.