diff --git a/Dockerfile b/Dockerfile index 0e4d20b..c012c5a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,34 @@ -FROM debian:latest -RUN apt-get update +# Native amd64 +FROM debian:stable-slim ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get -y install debootstrap \ - debian-archive-keyring \ - git \ - crossbuild-essential-arm64 \ - crossbuild-essential-armhf \ - qemu-user-static \ - device-tree-compiler \ - bison \ - flex \ - python-dev \ - swig \ - parted \ - e2fsprogs \ - dosfstools \ - mtools \ - pwgen +RUN apt-get update && \ + apt-get --assume-yes \ + --no-install-recommends \ + install debootstrap \ + debian-archive-keyring \ + ca-certificates \ + qemu-user-static \ + device-tree-compiler \ + gcc \ + make \ + git \ + bc \ + bison \ + flex \ + python-dev \ + swig \ + parted \ + e2fsprogs \ + dosfstools \ + mtools \ + pwgen && \ + ([ "$(uname -m)" = "x86_64" ] && \ + apt-get --assume-yes \ + install gcc-aarch64-linux-gnu \ + gcc-arm-linux-gnueabihf) && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f /var/log/*.log ENV PATH="/debimg:${PATH}" COPY . /debimg WORKDIR /debimg diff --git a/dockerfiles/Dockerfile.arm32v7 b/dockerfiles/Dockerfile.arm32v7 new file mode 100644 index 0000000..e5faa8b --- /dev/null +++ b/dockerfiles/Dockerfile.arm32v7 @@ -0,0 +1,29 @@ +# Native armhf +FROM arm32v7/debian:stable-slim +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get --assume-yes \ + --no-install-recommends \ + install debootstrap \ + debian-archive-keyring \ + ca-certificates \ + device-tree-compiler \ + gcc \ + make \ + git \ + bc \ + bison \ + flex \ + python-dev \ + swig \ + parted \ + e2fsprogs \ + dosfstools \ + mtools \ + pwgen && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f /var/log/*.log +ENV PATH="/debimg:${PATH}" +COPY . /debimg +WORKDIR /debimg diff --git a/dockerfiles/Dockerfile.arm32v7-on-amd64 b/dockerfiles/Dockerfile.arm32v7-on-amd64 new file mode 100644 index 0000000..b5f8e0d --- /dev/null +++ b/dockerfiles/Dockerfile.arm32v7-on-amd64 @@ -0,0 +1,40 @@ +# Build host is assumed to have "update-binfmts --enable qemu-arm" + +# First get qemu-user-static for host... +FROM debian:stable-slim as host +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get --assume-yes \ + install qemu-user-static + +# ...then build image for target with help of qemu-user-static +FROM arm32v7/debian:stable-slim +ENV DEBIAN_FRONTEND=noninteractive +COPY --from=host /usr/bin/qemu-arm-static /usr/bin/ +RUN apt-get update && \ + apt-get --assume-yes \ + --no-install-recommends \ + install debootstrap \ + debian-archive-keyring \ + ca-certificates \ + device-tree-compiler \ + gcc \ + make \ + git \ + bc \ + bison \ + flex \ + python-dev \ + swig \ + parted \ + e2fsprogs \ + dosfstools \ + mtools \ + pwgen && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f /var/log/*.log +RUN rm /usr/bin/qemu-arm-static +ENV PATH="/debimg:${PATH}" +COPY . /debimg +WORKDIR /debimg diff --git a/dockerfiles/Dockerfile.arm64v8 b/dockerfiles/Dockerfile.arm64v8 index e190c31..08ef450 100644 --- a/dockerfiles/Dockerfile.arm64v8 +++ b/dockerfiles/Dockerfile.arm64v8 @@ -1,22 +1,29 @@ -FROM debian:latest -RUN apt-get update +# Native arm64 +FROM arm64v8/debian:stable-slim ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get -y install debootstrap \ - debian-archive-keyring \ - git \ - build-essential \ - gcc-arm-linux-gnueabihf \ - device-tree-compiler \ - bc \ - bison \ - flex \ - python-dev \ - swig \ - parted \ - e2fsprogs \ - dosfstools \ - mtools \ - pwgen +RUN apt-get update && \ + apt-get --assume-yes \ + --no-install-recommends \ + install debootstrap \ + debian-archive-keyring \ + ca-certificates \ + device-tree-compiler \ + gcc \ + make \ + git \ + bc \ + bison \ + flex \ + python-dev \ + swig \ + parted \ + e2fsprogs \ + dosfstools \ + mtools \ + pwgen && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f /var/log/*.log ENV PATH="/debimg:${PATH}" COPY . /debimg WORKDIR /debimg diff --git a/dockerfiles/Dockerfile.arm64v8-on-amd64 b/dockerfiles/Dockerfile.arm64v8-on-amd64 new file mode 100644 index 0000000..cc458ae --- /dev/null +++ b/dockerfiles/Dockerfile.arm64v8-on-amd64 @@ -0,0 +1,40 @@ +# Build host is assumed to have "update-binfmts --enable qemu-aarch64" + +# First get qemu-user-static for host... +FROM debian:stable-slim as host +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get --assume-yes \ + install qemu-user-static + +# ...then build image for target with help of qemu-user-static +FROM arm64v8/debian:stable-slim +ENV DEBIAN_FRONTEND=noninteractive +COPY --from=host /usr/bin/qemu-aarch64-static /usr/bin/ +RUN apt-get update && \ + apt-get --assume-yes \ + --no-install-recommends \ + install debootstrap \ + debian-archive-keyring \ + ca-certificates \ + device-tree-compiler \ + gcc \ + make \ + git \ + bc \ + bison \ + flex \ + python-dev \ + swig \ + parted \ + e2fsprogs \ + dosfstools \ + mtools \ + pwgen && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f /var/log/*.log +RUN rm /usr/bin/qemu-aarch64-static +ENV PATH="/debimg:${PATH}" +COPY . /debimg +WORKDIR /debimg