Add docker build script for rootfs_size.py
Change-Id: Ib287ffd33a5333b6b0a1fdf64aa1a392aff48392
Signed-off-by: Michael Shepos <shepos@us.ibm.com>
diff --git a/build-rootfs-size-docker.sh b/build-rootfs-size-docker.sh
new file mode 100755
index 0000000..5299c64
--- /dev/null
+++ b/build-rootfs-size-docker.sh
@@ -0,0 +1,65 @@
+#!/bin/bash -xe
+#
+# Build the required docker image to run rootfs_size.py
+#
+# Script Variables:
+# DOCKER_IMG_NAME: <optional, the name of the docker image to generate>
+# default is openbmc/ubuntu-rootfs-size
+# DISTRO: <optional, the distro to build a docker image against>
+# default is ubuntu:bionic
+
+set -uo pipefail
+
+DOCKER_IMG_NAME=${DOCKER_IMG_NAME:-"openbmc/ubuntu-rootfs-size"}
+DISTRO=${DISTRO:-"ubuntu:bionic"}
+
+# Determine the architecture
+ARCH=$(uname -m)
+case ${ARCH} in
+ "ppc64le")
+ DOCKER_BASE="ppc64le/"
+ ;;
+ "x86_64")
+ DOCKER_BASE=""
+ ;;
+ *)
+ echo "Unsupported system architecture(${ARCH}) found for docker image"
+ exit 1
+esac
+
+################################# docker img # #################################
+
+if [[ "${DISTRO}" == "ubuntu"* ]]; then
+Dockerfile=$(cat << EOF
+FROM ${DOCKER_BASE}${DISTRO}
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get update && apt-get install -yy \
+ python3 \
+ python3-dev\
+ python3-yaml \
+ python3-mako \
+ python3-pip \
+ python3-setuptools \
+ curl \
+ git \
+ wget \
+ sudo \
+ squashfs-tools
+
+# Final configuration for the workspace
+RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
+RUN mkdir -p $(dirname ${HOME})
+RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
+RUN sed -i '1iDefaults umask=000' /etc/sudoers
+RUN echo "${USER} ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
+
+RUN /bin/bash
+EOF
+)
+fi
+################################# docker img # #################################
+
+# Build above image
+docker build --network=host -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"