16e77d11eSMichael Shepos#!/bin/bash -xe 26e77d11eSMichael Shepos# 36e77d11eSMichael Shepos# Build the required docker image to run rootfs_size.py 46e77d11eSMichael Shepos# 56e77d11eSMichael Shepos# Script Variables: 66e77d11eSMichael Shepos# DOCKER_IMG_NAME: <optional, the name of the docker image to generate> 76e77d11eSMichael Shepos# default is openbmc/ubuntu-rootfs-size 86e77d11eSMichael Shepos# DISTRO: <optional, the distro to build a docker image against> 96e77d11eSMichael Shepos# default is ubuntu:bionic 106e77d11eSMichael Shepos 116e77d11eSMichael Sheposset -uo pipefail 126e77d11eSMichael Shepos 136e77d11eSMichael SheposDOCKER_IMG_NAME=${DOCKER_IMG_NAME:-"openbmc/ubuntu-rootfs-size"} 146e77d11eSMichael SheposDISTRO=${DISTRO:-"ubuntu:bionic"} 156e77d11eSMichael Shepos 166e77d11eSMichael Shepos# Determine the architecture 176e77d11eSMichael SheposARCH=$(uname -m) 186e77d11eSMichael Sheposcase ${ARCH} in 196e77d11eSMichael Shepos "ppc64le") 206e77d11eSMichael Shepos DOCKER_BASE="ppc64le/" 216e77d11eSMichael Shepos ;; 226e77d11eSMichael Shepos "x86_64") 236e77d11eSMichael Shepos DOCKER_BASE="" 246e77d11eSMichael Shepos ;; 256e77d11eSMichael Shepos *) 266e77d11eSMichael Shepos echo "Unsupported system architecture(${ARCH}) found for docker image" 276e77d11eSMichael Shepos exit 1 286e77d11eSMichael Sheposesac 296e77d11eSMichael Shepos 306e77d11eSMichael Shepos################################# docker img # ################################# 316e77d11eSMichael Shepos 326e77d11eSMichael Sheposif [[ "${DISTRO}" == "ubuntu"* ]]; then 336e77d11eSMichael SheposDockerfile=$(cat << EOF 346e77d11eSMichael SheposFROM ${DOCKER_BASE}${DISTRO} 356e77d11eSMichael Shepos 366e77d11eSMichael SheposENV DEBIAN_FRONTEND noninteractive 376e77d11eSMichael Shepos 386e77d11eSMichael SheposRUN apt-get update && apt-get install -yy \ 396e77d11eSMichael Shepos python3 \ 406e77d11eSMichael Shepos python3-dev\ 416e77d11eSMichael Shepos python3-yaml \ 426e77d11eSMichael Shepos python3-mako \ 436e77d11eSMichael Shepos python3-pip \ 446e77d11eSMichael Shepos python3-setuptools \ 456e77d11eSMichael Shepos curl \ 466e77d11eSMichael Shepos git \ 476e77d11eSMichael Shepos wget \ 486e77d11eSMichael Shepos sudo \ 496e77d11eSMichael Shepos squashfs-tools 506e77d11eSMichael Shepos 516e77d11eSMichael Shepos# Final configuration for the workspace 52*384d741bSPatrick WilliamsRUN grep -q ${GROUPS[0]} /etc/group || groupadd -g ${GROUPS[0]} ${USER} 53*384d741bSPatrick WilliamsRUN mkdir -p $(dirname "${HOME}") 54*384d741bSPatrick WilliamsRUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS[0]} ${USER} 556e77d11eSMichael SheposRUN sed -i '1iDefaults umask=000' /etc/sudoers 566e77d11eSMichael SheposRUN echo "${USER} ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers 576e77d11eSMichael Shepos 586e77d11eSMichael SheposRUN /bin/bash 596e77d11eSMichael SheposEOF 606e77d11eSMichael Shepos) 616e77d11eSMichael Sheposfi 626e77d11eSMichael Shepos################################# docker img # ################################# 636e77d11eSMichael Shepos 646e77d11eSMichael Shepos# Build above image 65*384d741bSPatrick Williamsdocker build --network=host -t "${DOCKER_IMG_NAME}" - <<< "${Dockerfile}" 66