diff --git a/docker/Dockerfile b/docker/Dockerfile index 49d8021..220d69f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,56 +1,57 @@ +# Global ARGs shared by all stages +ARG DEBIAN_FRONTEND=noninteractive +ARG GOPATH=/usr/local/go + ### first stage - builder ### -FROM golang:1.10 as builder +FROM debian:buster-slim as builder -MAINTAINER Maciej Pijanowski - -ENV HOME=/scratch +ARG DEBIAN_FRONTEND +ARG GOPATH # install debos build dependencies RUN apt-get update && \ apt-get install -y --no-install-recommends \ - libglib2.0-dev \ - libostree-dev \ - && rm -rf /var/lib/apt/lists/* + ca-certificates \ + golang-go \ + gcc \ + git \ + libostree-dev \ + libc6-dev && \ + rm -rf /var/lib/apt/lists/* +# Build debos RUN go get -d github.com/go-debos/debos/cmd/debos -WORKDIR /go/src/github.com/go-debos/debos/ +WORKDIR $GOPATH/src/github.com/go-debos/debos/ RUN GOOS=linux go build -a cmd/debos/debos.go ### second stage - runner ### -FROM debian:stretch-slim as runner +FROM debian:buster-slim as runner -ARG DEBIAN_FRONTEND=noninteractive +ARG DEBIAN_FRONTEND +ARG GOPATH # 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 \ - libostree-1-1 \ - ca-certificates \ - systemd-container \ - binfmt-support \ - parted \ - dosfstools \ - e2fsprogs \ - bmap-tools \ - # fakemachine runtime dependencies - qemu-system-x86 \ - qemu-user-static \ - busybox \ - linux-image-amd64 \ - systemd \ - dbus \ - && rm -rf /var/lib/apt/lists/* - -# Bug description: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806780 -# It was fixed in debootstrap 1.0.96 while Stretch provides 1.0.89. Backports -# provide 1.0.100. -RUN printf "deb http://httpredir.debian.org/debian stretch-backports main \ndeb-src http://httpredir.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list && \ - apt-get update && \ - apt-get -t stretch-backports install -y --no-install-recommends \ - debootstrap && \ + libostree-1-1 \ + ca-certificates \ + debootstrap \ + systemd-container \ + binfmt-support \ + parted \ + dosfstools \ + e2fsprogs \ + bmap-tools \ + # fakemachine runtime dependencies + qemu-system-x86 \ + qemu-user-static \ + busybox \ + linux-image-amd64 \ + systemd \ + dbus && \ rm -rf /var/lib/apt/lists/* -COPY --from=builder /go/src/github.com/go-debos/debos/debos /usr/bin/debos +COPY --from=builder $GOPATH/src/github.com/go-debos/debos/debos /usr/bin/debos WORKDIR /root