diff options
Diffstat (limited to 'docker/Dockerfile')
-rw-r--r-- | docker/Dockerfile | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..16059d9 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,80 @@ +# Global ARGs shared by all stages +ARG DEBIAN_FRONTEND=noninteractive +ARG GOPATH=/usr/local/go + +### first stage - builder ### +FROM debian:buster-slim as builder + +ARG DEBIAN_FRONTEND +ARG GOPATH +ENV GOPATH=${GOPATH} + +# install debos build dependencies +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + gcc \ + git \ + golang-go \ + libc6-dev \ + libostree-dev && \ + rm -rf /var/lib/apt/lists/* + +# Build debos +COPY . $GOPATH/src/github.com/go-debos/debos +WORKDIR $GOPATH/src/github.com/go-debos/debos/cmd/debos +RUN go get -d ./... && \ + go get -d github.com/stretchr/testify && \ + go install + +### second stage - runner ### +FROM debian:buster-slim as runner + +ARG DEBIAN_FRONTEND +ARG GOPATH + +# Set HOME to a writable directory in case something wants to cache things +ENV HOME=/tmp + +LABEL org.label-schema.name "debos" +LABEL org.label-schema.description "Debian OS builder" +LABEL org.label-schema.vcs-url = "https://github.com/go-debos/debos" +LABEL org.label-schema.docker.cmd 'docker run \ + --rm \ + --interactive \ + --tty \ + --device /dev/kvm \ + --user $(id -u) \ + --workdir /recipes \ + --mount "type=bind,source=$(pwd),destination=/recipes" \ + --security-opt label=disable' + +# debos runtime dependencies +# ca-certificates is required to validate HTTPS certificates when getting debootstrap release file +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + apt-transport-https \ + binfmt-support \ + bmap-tools \ + btrfs-progs \ + busybox \ + bzip2 \ + ca-certificates \ + debootstrap \ + dosfstools \ + e2fsprogs \ + gzip \ + libostree-1-1 \ + linux-image-amd64 \ + parted \ + pkg-config \ + qemu-system-x86 \ + qemu-user-static \ + systemd \ + systemd-container \ + xz-utils && \ + rm -rf /var/lib/apt/lists/* + +COPY --from=builder $GOPATH/bin/debos /usr/local/bin/debos + +ENTRYPOINT ["/usr/local/bin/debos"] |