From 0214c41ff342457a93f793de58254a3a584fe76c Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 29 Sep 2016 15:44:35 +0100 Subject: [PATCH] Use patched aufs-utils so can compile kernel with alpine This is going to be submitted upstream. Signed-off-by: Justin Cormack --- alpine/base/alpine-build-c/Dockerfile | 22 +++++++++++++++++++- alpine/base/debian-build-kernel/Dockerfile | 24 ---------------------- alpine/base/debian-build-kernel/Makefile | 14 ------------- alpine/kernel/Dockerfile | 13 ++++++------ alpine/packages/9pmount-vsock/Dockerfile | 2 +- alpine/packages/nc-vsock/Dockerfile | 2 +- alpine/packages/tap-vsockd/Dockerfile | 2 +- alpine/packages/transfused/Dockerfile | 2 +- 8 files changed, 31 insertions(+), 50 deletions(-) delete mode 100644 alpine/base/debian-build-kernel/Dockerfile delete mode 100644 alpine/base/debian-build-kernel/Makefile diff --git a/alpine/base/alpine-build-c/Dockerfile b/alpine/base/alpine-build-c/Dockerfile index a56d943b5..93a5b7a44 100644 --- a/alpine/base/alpine-build-c/Dockerfile +++ b/alpine/base/alpine-build-c/Dockerfile @@ -1,2 +1,22 @@ FROM alpine:3.4 -RUN apk update && apk upgrade && apk add build-base util-linux-dev linux-headers +RUN \ + apk update && apk upgrade && \ + apk add \ + alpine-sdk \ + automake \ + bash \ + bc \ + curl \ + gmp-dev \ + installkernel \ + kmod \ + linux-headers \ + perl \ + sed \ + squashfs-tools \ + syslinux \ + unzip \ + util-linux-dev \ + vim \ + xz \ + && true diff --git a/alpine/base/debian-build-kernel/Dockerfile b/alpine/base/debian-build-kernel/Dockerfile deleted file mode 100644 index 3ea659a18..000000000 --- a/alpine/base/debian-build-kernel/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM debian:jessie - -RUN apt-get update && apt-get -y upgrade && apt-get -y install \ - unzip \ - xz-utils \ - curl \ - bc \ - build-essential \ - cpio \ - gcc libc6 libc6-dev \ - kmod \ - squashfs-tools \ - genisoimage \ - xorriso \ - syslinux \ - isolinux \ - automake \ - pkg-config \ - git \ - ncurses-dev \ - p7zip-full \ - lzop \ - wget \ - vim diff --git a/alpine/base/debian-build-kernel/Makefile b/alpine/base/debian-build-kernel/Makefile deleted file mode 100644 index 60428abf0..000000000 --- a/alpine/base/debian-build-kernel/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# no easy hashing scheme for Debian, will switch to Alpine soon so temporarily use sha256 -.PHONY: push - -BASE=debian:jessie -IMAGE=debian-build-kernel - -TAG := $(shell cat /dev/urandom | od -N6 -t x2 | head -n1 | cut -b9- | sed 's/ //g') - -push: - docker pull $(BASE) - tar cf - Dockerfile | docker build --no-cache -t mobylinux/$(IMAGE):$(TAG) - - docker tag mobylinux/$(IMAGE):$(TAG) mobylinux/$(IMAGE):latest - docker push mobylinux/$(IMAGE):$(TAG) - docker push mobylinux/$(IMAGE):latest diff --git a/alpine/kernel/Dockerfile b/alpine/kernel/Dockerfile index ea2206177..67a472f7e 100644 --- a/alpine/kernel/Dockerfile +++ b/alpine/kernel/Dockerfile @@ -1,4 +1,4 @@ -FROM mobylinux/debian-build-kernel:a009a11bf0ad +FROM mobylinux/alpine-build-c:50a89f207d5fc98ce750d694077c75a31ab7937d ARG KERNEL_VERSION=4.4.22 @@ -19,8 +19,8 @@ RUN git clone -b "$AUFS_BRANCH" "$AUFS_REPO" /aufs && \ git checkout -q "$AUFS_COMMIT" # aufs-util 20151116 -ENV AUFS_TOOLS_REPO https://github.com/Distrotech/aufs-util.git -ENV AUFS_TOOLS_COMMIT b5e7e204036da5e815ddec15a847a03c232771b4 +ENV AUFS_TOOLS_REPO https://github.com/ncopa/aufs-util.git +ENV AUFS_TOOLS_COMMIT 3b7c5e262b53598a8204a915e485489c46d4e7a4 # Download aufs tools RUN git clone ${AUFS_TOOLS_REPO} && \ @@ -61,11 +61,10 @@ RUN cd /linux && \ patch -p1 < "$patch"; \ done -RUN jobs=$(nproc); \ - cd /linux && \ +RUN cd /linux && \ make defconfig && \ make oldconfig && \ - make -j ${jobs} && \ + make KCFLAGS="-fno-pie" && \ make INSTALL_MOD_PATH=/tmp/kernel-modules modules_install && \ ( cd /tmp/kernel-modules && tar cf /kernel-modules.tar . ) && \ make INSTALL_HDR_PATH=/tmp/kernel-headers headers_install @@ -76,6 +75,6 @@ RUN cd /aufs-util && \ CPPFLAGS="-I/tmp/kernel-headers/include" CFLAGS=$CPPFLAGS LDFLAGS=$CPPFLAGS make && \ DESTDIR=/tmp/aufs-utils make install && \ rm -rf /tmp/aufs-utils/usr/lib /tmp/aufs-utils/usr/share && \ - cd /tmp/aufs-utils && tar cf /aufs-utils.tar . + cd /tmp/aufs-utils && rm libau* && tar cf /aufs-utils.tar . RUN printf "KERNEL_SOURCE=${KERNEL_SOURCE}\nAUFS_REPO=${AUFS_REPO}\nAUFS_BRANCH=${AUFS_BRANCH}\nAUFS_COMMIT=${AUFS_COMMIT}\nAUFS_TOOLS_REPO=${AUFS_TOOLS_REPO}\nAUFS_TOOLS_COMMIT=${AUFS_TOOLS_COMMIT}\n" > /kernel-source-info diff --git a/alpine/packages/9pmount-vsock/Dockerfile b/alpine/packages/9pmount-vsock/Dockerfile index 99a8a8e32..b31641fb8 100644 --- a/alpine/packages/9pmount-vsock/Dockerfile +++ b/alpine/packages/9pmount-vsock/Dockerfile @@ -1,4 +1,4 @@ -FROM mobylinux/alpine-build-c:1ea690a7438cdd8a5965eaa034e0a0c521d9cb40 +FROM mobylinux/alpine-build-c:50a89f207d5fc98ce750d694077c75a31ab7937d COPY . /9pmount-vsock diff --git a/alpine/packages/nc-vsock/Dockerfile b/alpine/packages/nc-vsock/Dockerfile index f93b9fc71..b69076a17 100644 --- a/alpine/packages/nc-vsock/Dockerfile +++ b/alpine/packages/nc-vsock/Dockerfile @@ -1,4 +1,4 @@ -FROM mobylinux/alpine-build-c:1ea690a7438cdd8a5965eaa034e0a0c521d9cb40 +FROM mobylinux/alpine-build-c:50a89f207d5fc98ce750d694077c75a31ab7937d COPY . /nc-vsock diff --git a/alpine/packages/tap-vsockd/Dockerfile b/alpine/packages/tap-vsockd/Dockerfile index a8e26bf8e..d9ccd8ec8 100644 --- a/alpine/packages/tap-vsockd/Dockerfile +++ b/alpine/packages/tap-vsockd/Dockerfile @@ -1,4 +1,4 @@ -FROM mobylinux/alpine-build-c:1ea690a7438cdd8a5965eaa034e0a0c521d9cb40 +FROM mobylinux/alpine-build-c:50a89f207d5fc98ce750d694077c75a31ab7937d COPY . /tap-vsockd diff --git a/alpine/packages/transfused/Dockerfile b/alpine/packages/transfused/Dockerfile index 31b7d80eb..edd8a82d7 100644 --- a/alpine/packages/transfused/Dockerfile +++ b/alpine/packages/transfused/Dockerfile @@ -1,4 +1,4 @@ -FROM mobylinux/alpine-build-c:1ea690a7438cdd8a5965eaa034e0a0c521d9cb40 +FROM mobylinux/alpine-build-c:50a89f207d5fc98ce750d694077c75a31ab7937d COPY . /transfused