From 9b5b08bb0f9ec5747ec0a5ef73488a491cc9d48a Mon Sep 17 00:00:00 2001 From: Cody Date: Wed, 13 Oct 2021 12:51:43 -0400 Subject: [PATCH] Adding logic to remove need for makefile with example bash build script --- Dockerfile.amd64 | 8 ++++---- Dockerfile.arm64 | 8 +++++--- Dockerfile.armhf | 10 ++++++---- build.sh | 26 ++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 build.sh diff --git a/Dockerfile.amd64 b/Dockerfile.amd64 index f36e07d6..75c6fb5a 100644 --- a/Dockerfile.amd64 +++ b/Dockerfile.amd64 @@ -1,10 +1,10 @@ -# Built with arch: amd64 flavor: lxde image: ubuntu:20.04 +# Built with arch: amd64 flavor: lxde image: ${DOCKER_BASE_IMAGE} # ################################################################################ # base system ################################################################################ - -FROM ubuntu:20.04 as system +ARG DOCKER_BASE_IMAGE +FROM ${DOCKER_BASE_IMAGE} as system @@ -82,7 +82,7 @@ RUN apt-get update \ ################################################################################ # builder ################################################################################ -FROM ubuntu:20.04 as builder +FROM ${DOCKER_BASE_IMAGE} as builder RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 8c12efb0..1c20991c 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -5,9 +5,11 @@ ################################################################################ # qemu helper for arm build -FROM ubuntu:20.04 as amd64 +ARG DOCKER_BASE_IMAGE + +FROM ${DOCKER_BASE_IMAGE} as amd64 RUN apt update && apt install -y qemu-user-static -FROM arm64v8/ubuntu:20.04 as system +FROM arm64v8/${DOCKER_BASE_IMAGE} as system COPY --from=amd64 /usr/bin/qemu-aarch64-static /usr/bin/ @@ -79,7 +81,7 @@ RUN apt-get update \ ################################################################################ # builder ################################################################################ -FROM ubuntu:20.04 as builder +FROM ${DOCKER_BASE_IMAGE} as builder RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 561bb779..03f0f2e9 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,13 +1,15 @@ -# Built with arch: armhf flavor: lxde image: ubuntu:18.04 +# Built with arch: armhf flavor: lxde image: ${DOCKER_BASE_IMAGE} # ################################################################################ # base system ################################################################################ +ARG DOCKER_BASE_IMAGE + # qemu helper for arm build -FROM ubuntu:18.04 as amd64 +FROM ${DOCKER_BASE_IMAGE} as amd64 RUN apt update && apt install -y qemu-user-static -FROM arm32v7/ubuntu:18.04 as system +FROM arm32v7/${DOCKER_BASE_IMAGE} as system COPY --from=amd64 /usr/bin/qemu-arm-static /usr/bin/ @@ -75,7 +77,7 @@ RUN apt-get update \ ################################################################################ # builder ################################################################################ -FROM ubuntu:18.04 as builder +FROM ${DOCKER_BASE_IMAGE} as builder RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..065c25d1 --- /dev/null +++ b/build.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +#Ensure nothing happens outside the directory this script is ran from +cd "$(dirname "$0")" +SCRIPT_DIRECTORY=$(pwd) + +ARCHITECTURE="" +case $(uname -m) in + i386) ARCHITECTURE="386" ;; + i686) ARCHITECTURE="386" ;; + x86_64) ARCHITECTURE="amd64" ;; + arm) dpkg --print-ARCHITECTURE | grep -q "arm64" && ARCHITECTURE="arm64" || ARCHITECTURE="arm" ;; +esac + +echo "[INFO] Processor Architecture Detected as $ARCHITECTURE" + +DOCKER_BASE_IMAGE="ubuntu:18.04" +DOCKER_FINAL_IMAGE_TAG="dorowu/ubuntu-desktop-lxde-vnc:bionic" + +# Comment or Uncomment as needed to build the appropriate final image +# DOCKER_BASE_IMAGE="ubuntu:20.04" +# DOCKER_FINAL_IMAGE_TAG="dorowu/ubuntu-desktop-lxde-vnc:latest" + +docker build -t "$DOCKER_FINAL_IMAGE_TAG" -f "Dockerfile.$ARCHITECTURE" \ + --build-arg DOCKER_BASE_IMAGE="$DOCKER_BASE_IMAGE" \ + $SCRIPT_DIRECTORY \ No newline at end of file