FROM linuxkit/alpine:6ed3b299f5243acb6459b4993549c5045e4ad7f4 as alpine RUN \ apk add \ btrfs-progs-dev \ gcc \ git \ go \ libc-dev \ linux-headers \ make \ tzdata \ && true ENV GOPATH=/go PATH=$PATH:/go/bin # CONTAINERD_REPO and CONTAINERD_COMMIT are defined in linuxkit/alpine RUN mkdir -p $GOPATH/src/github.com/containerd && \ cd $GOPATH/src/github.com/containerd && \ git clone $CONTAINERD_REPO WORKDIR $GOPATH/src/github.com/containerd/containerd RUN git checkout $CONTAINERD_COMMIT RUN make binaries EXTRA_FLAGS="-buildmode pie" EXTRA_LDFLAGS="-extldflags \\\"-fno-PIC -static\\\"" RUN cp bin/containerd bin/ctr bin/containerd-shim /usr/bin/ ADD cmd /go/src/cmd RUN cd /go/src/cmd/service && ./skanky-vendor.sh $GOPATH/src/github.com/containerd/containerd RUN go-compile.sh /go/src/cmd/service RUN mkdir -p /etc/init.d && ln -s /usr/bin/service /etc/init.d/020-containerd WORKDIR / COPY . . FROM scratch ENTRYPOINT [] WORKDIR / COPY --from=alpine /usr/bin/containerd /usr/bin/ctr /usr/bin/containerd-shim /go/bin/service /usr/bin/ COPY --from=alpine /etc/containerd/config.toml /etc/containerd/ COPY --from=alpine /usr/share/zoneinfo/UTC /etc/localtime COPY --from=alpine /etc/init.d/ /etc/init.d/ COPY etc etc/