From b392bf0a2ee555ecab60e998021621f5ebbc23e2 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Sun, 11 Sep 2016 00:05:31 +0100 Subject: [PATCH] Simplify kernel output and main Dockerfile Signed-off-by: Justin Cormack --- alpine/.dockerignore | 1 - alpine/Dockerfile | 26 +++++++------------ alpine/kernel/.gitignore | 7 +++-- alpine/kernel/Dockerfile | 5 +--- alpine/kernel/Makefile | 20 ++++++-------- .../packages/containerd/etc/init.d/containerd | 8 ++++++ alpine/packages/docker/etc/init.d/docker | 1 + 7 files changed, 32 insertions(+), 36 deletions(-) delete mode 100644 alpine/.dockerignore diff --git a/alpine/.dockerignore b/alpine/.dockerignore deleted file mode 100644 index fdb1349b5..000000000 --- a/alpine/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -packages/docker/docker.git diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 80ac654e8..45eac5aea 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -5,15 +5,18 @@ ENV ARCH=x86_64 RUN \ addgroup -g 50 docker && \ adduser -G docker -u 1001 -s /bin/sh -D -g "Docker" docker && \ - passwd -d root + passwd -d root && \ + adduser -D -H -s /sbin/nologin dockremap COPY etc /etc/ -RUN mkdir -p /etc/docker -ADD kernel/$ARCH/aufs-utils.tar / -COPY kernel/$ARCH/kernel-source-info /etc/ -ADD kernel/$ARCH/kernel-patches.tar /etc/kernel-patches -ADD kernel/$ARCH/kernel-modules.tar / +COPY kernel/usr /usr/ +COPY kernel/etc /etc/ +COPY kernel/sbin /sbin/ +COPY kernel/lib /lib/ + +COPY init / +COPY mkinitrd.sh / COPY packages/proxy/usr /usr/ COPY packages/proxy/sbin /sbin/ @@ -88,15 +91,4 @@ RUN \ rc-update add azure default && \ true -COPY init / -COPY mkinitrd.sh / - -RUN adduser -D -H -s /sbin/nologin dockremap - -RUN cd /usr/bin && \ - ln -s docker-runc runc && \ - ln -s docker-containerd-shim containerd-shim && \ - ln -s docker-containerd-ctr containerd-ctr && \ - ln -s docker-containerd containerd - CMD ["/bin/sh"] diff --git a/alpine/kernel/.gitignore b/alpine/kernel/.gitignore index a4129c97c..fea831687 100644 --- a/alpine/kernel/.gitignore +++ b/alpine/kernel/.gitignore @@ -1,2 +1,5 @@ -x86_64 -arm +x86_64/ +etc/ +lib/ +usr/ +sbin/ diff --git a/alpine/kernel/Dockerfile b/alpine/kernel/Dockerfile index 944d8ec04..fa4e5657c 100644 --- a/alpine/kernel/Dockerfile +++ b/alpine/kernel/Dockerfile @@ -66,13 +66,10 @@ RUN if [ $DEBUG -ne "0" ]; then \ # Apply local patches COPY patches /patches RUN cd /linux && \ - mkdir /etc/kernel-patches && \ set -e && for patch in /patches/*.patch; do \ echo "Applying $patch"; \ - cp "$patch" /etc/kernel-patches; \ patch -p1 < "$patch"; \ - done && \ - cd /etc/kernel-patches && tar cf /kernel-patches.tar . + done RUN jobs=$(nproc); \ cd /linux && \ diff --git a/alpine/kernel/Makefile b/alpine/kernel/Makefile index 739db4e2b..1bf53e271 100644 --- a/alpine/kernel/Makefile +++ b/alpine/kernel/Makefile @@ -8,21 +8,17 @@ $(ARCH)/mobykernel-build: Dockerfile kernel_config docker build --build-arg DEBUG=$(DEBUG) -t mobykernel:build . touch $@ -$(ARCH)/aufs-utils.tar $(ARCH)/kernel-source-info $(ARCH)/kernel-patches.tar $(ARCH)/kernel-modules.tar: $(ARCH)/mobykernel-build - docker run --rm mobykernel:build cat /$(notdir $@) > $@ || ! rm $@ - -$(ARCH)/bzImage $(ARCH)/zImage: $(ARCH)/aufs-utils.tar $(ARCH)/kernel-source-info $(ARCH)/kernel-patches.tar $(ARCH)/kernel-modules.tar $(ARCH)/mobykernel-build +$(ARCH)/bzImage: $(ARCH)/mobykernel-build docker run --rm mobykernel:build cat /linux/arch/$(ARCH)/boot/$(notdir $@) > $@ || ! rm $@ - -$(ARCH)/vmlinux: $(ARCH)/bzImage - docker run --rm mobykernel:build cat /linux/vmlinux > $@ || ! rm $@ + docker run --rm --net=none mobykernel:build cat /kernel-modules.tar | tar xf - + docker run --rm mobykernel:build cat /aufs-utils.tar | tar xf - + docker run --rm mobykernel:build cat /kernel-source-info > etc/kernel-source-info + mkdir -p etc + cp -a patches etc/kernel-patches $(ARCH)/vmlinuz64: $(ARCH)/bzImage cp $< $@ -clean-arch: - rm -rf $(ARCH) - docker images -q mobykernel:build | xargs docker rmi -f || true - clean: - $(MAKE) clean-arch ARCH=x86_64 + rm -rf $(ARCH) lib etc usr sbin + docker images -q mobykernel:build | xargs docker rmi -f || true diff --git a/alpine/packages/containerd/etc/init.d/containerd b/alpine/packages/containerd/etc/init.d/containerd index f5b007d41..60fd8ae88 100755 --- a/alpine/packages/containerd/etc/init.d/containerd +++ b/alpine/packages/containerd/etc/init.d/containerd @@ -13,6 +13,14 @@ start() ulimit -n 1048576 ulimit -p unlimited + [ ! -e /usr/bin/containerd ] && \ + ( cd /usr/bin && \ + ln -s docker-runc runc && \ + ln -s docker-containerd-shim containerd-shim && \ + ln -s docker-containerd-ctr containerd-ctr && \ + ln -s docker-containerd containerd \ + ) + /usr/bin/containerd 1>&2 2>/var/log/containerd.log & ewaitfile 5 /var/run/containerd/containerd.sock diff --git a/alpine/packages/docker/etc/init.d/docker b/alpine/packages/docker/etc/init.d/docker index 81ee9b35c..38f67e2cb 100755 --- a/alpine/packages/docker/etc/init.d/docker +++ b/alpine/packages/docker/etc/init.d/docker @@ -41,6 +41,7 @@ start() esac # some config is always in /etc/docker cannot specify alternative eg certs + mkdir -p /etc/docker if mobyconfig exists etc/docker then for f in $(mobyconfig find etc/docker)