From 9d7c783a93dd4693a009aae5e99156c1f187acaf Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Fri, 28 Sep 2018 11:44:48 -0700 Subject: Make dockerfiles a bit more consistent ... and add Mint 19 and CentOS 6. The latter currently fails in ctng's configure due to an old libtool; need to make libtool optional. Signed-off-by: Alexey Neyman diff --git a/testing/docker/archlinux/Dockerfile b/testing/docker/archlinux/Dockerfile index 2ad9d64..a717088 100644 --- a/testing/docker/archlinux/Dockerfile +++ b/testing/docker/archlinux/Dockerfile @@ -1,3 +1,10 @@ FROM base/archlinux:latest +ARG CTNG_UID +ARG CTNG_GID +RUN groupadd -g $CTNG_GID ctng +RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN pacman -Syu --noconfirm RUN pacman -S --noconfirm base-devel git help2man python unzip +RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 +RUN chmod a+x /sbin/dumb-init +ENTRYPOINT [ "/sbin/dumb-init", "--" ] diff --git a/testing/docker/centos6/Dockerfile b/testing/docker/centos6/Dockerfile new file mode 100644 index 0000000..f76100f --- /dev/null +++ b/testing/docker/centos6/Dockerfile @@ -0,0 +1,10 @@ +FROM centos:6 +ARG CTNG_UID +ARG CTNG_GID +RUN groupadd -g $CTNG_GID ctng +RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng +RUN yum install -y autoconf gperf bison flex texinfo help2man gcc-c++ patch \ + ncurses-devel python-devel perl-Thread-Queue bzip2 git wget xz unzip +RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 +RUN chmod a+x /sbin/dumb-init +ENTRYPOINT [ "/sbin/dumb-init", "--" ] diff --git a/testing/docker/common-scripts/ctng-build-sample b/testing/docker/common-scripts/ctng-build-sample index 3f21478..6a6de6a 100755 --- a/testing/docker/common-scripts/ctng-build-sample +++ b/testing/docker/common-scripts/ctng-build-sample @@ -2,8 +2,8 @@ set -e cd -rm -rf bld-samples -mkdir bld-samples -cd bld-samples -export PATH=$HOME/inst-ctng/bin:$PATH -ct-ng build-all ${1+CT_SAMPLES="$*"} +rm -rf work/bld-samples +mkdir -p work/bld-samples work/inst-xtools +cd work/bld-samples +export PATH=$HOME/work/inst-ctng/bin:$PATH +ct-ng build-all CT_PREFIX=$HOME/work/inst-xtools ${1+CT_SAMPLES="$*"} diff --git a/testing/docker/common-scripts/ctng-install b/testing/docker/common-scripts/ctng-install index f29093a..500cb73 100755 --- a/testing/docker/common-scripts/ctng-install +++ b/testing/docker/common-scripts/ctng-install @@ -2,9 +2,9 @@ set -e cd -rm -rf bld-ctng -mkdir bld-ctng -cd bld-ctng -/crosstool-ng/configure --prefix=$HOME/inst-ctng +rm -rf work/bld-ctng work/inst-ctng +mkdir work/bld-ctng +cd work/bld-ctng +/crosstool-ng/configure --prefix=$HOME/work/inst-ctng make make install diff --git a/testing/docker/common-scripts/ctng-test-basic b/testing/docker/common-scripts/ctng-test-basic index 75412e1..0edb899 100755 --- a/testing/docker/common-scripts/ctng-test-basic +++ b/testing/docker/common-scripts/ctng-test-basic @@ -2,7 +2,7 @@ set -e cd -export PATH=$HOME/inst-ctng/bin:$PATH +export PATH=$HOME/work/inst-ctng/bin:$PATH ct-ng help ct-ng list-samples ct-ng list-steps diff --git a/testing/docker/common-scripts/su-as-user b/testing/docker/common-scripts/su-as-user deleted file mode 100755 index 436eb54..0000000 --- a/testing/docker/common-scripts/su-as-user +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -usr=$1 -uid=$2 -grp=$3 -gid=$4 -shift 4 - -groupadd -g ${gid} ${grp} -useradd -d /home/${usr} -m -g ${gid} -u ${uid} ${usr} -rm -f /home/${usr}/src -ln -sf /src /home/${usr}/src -if [ -z "$*" ]; then - exec su -l ${usr} -else - exec su -l -c "/bin/bash -c '$*'" ${usr} -fi diff --git a/testing/docker/dmgr.sh b/testing/docker/dmgr.sh index b6a4294..c059a6f 100755 --- a/testing/docker/dmgr.sh +++ b/testing/docker/dmgr.sh @@ -42,7 +42,8 @@ action_build() local cntr=$1 msg "Building Docker container for ${cntr}" - docker build --no-cache -t "ctng-${cntr}" "${cntr}" +set -x + docker build --no-cache -t "ctng-${cntr}" --build-arg CTNG_GID=`id -g` --build-arg CTNG_UID=`id -u` "${cntr}" } # Common backend for enter/test @@ -50,16 +51,23 @@ _dckr() { local topdir=`cd ../.. && pwd` local cntr=$1 + local scmd prefix shift mkdir -p build-${cntr} - docker run --rm -i -t \ - -v `pwd`/common-scripts:/setup-scripts:ro \ + prefix="docker run --rm -i -t \ + -v `pwd`/common-scripts:/common-scripts:ro \ -v ${topdir}:/crosstool-ng:ro \ - -v `pwd`/build-${cntr}:/home \ - -v $HOME/src:/src:ro \ - ctng-${cntr} \ - ${SETUPCMD:-/setup-scripts/su-as-user `id -un` `id -u` `id -gn` `id -g`} "$@" + -v `pwd`/build-${cntr}:/home/ctng/work \ + -v $HOME/src:/home/ctng/src:ro \ + ctng-${cntr}" + if [ -n "${AS_ROOT}" ]; then + $prefix "$@" + elif [ -n "$*" ]; then + $prefix su -l ctng -c "$*" + else + $prefix su -l ctng + fi } # Run the test @@ -69,8 +77,8 @@ action_install() # The test assumes the top directory is bootstrapped, but clean. msg "Setting up crosstool-NG in ${cntr}" - _dckr "${cntr}" /setup-scripts/ctng-install - _dckr "${cntr}" /setup-scripts/ctng-test-basic + _dckr "${cntr}" /common-scripts/ctng-install && \ + _dckr "${cntr}" /common-scripts/ctng-test-basic } # Run the test @@ -81,16 +89,17 @@ action_sample() # The test assumes the top directory is bootstrapped, but clean. msg "Building samples in ${cntr} [$@]" - _dckr "${cntr}" /setup-scripts/ctng-build-sample "$@" + _dckr "${cntr}" /common-scripts/ctng-build-sample "$@" } # Enter the container using the same user account/environment as for testing. action_enter() { local cntr=$1 + shift msg "Entering ${cntr}" - _dckr "${cntr}" + _dckr "${cntr}" "$@" } # Enter the container using the same user account/environment as for testing. @@ -99,7 +108,7 @@ action_root() local cntr=$1 msg "Entering ${cntr} as root" - SETUPCMD=/bin/bash _dckr "${cntr}" + AS_ROOT=y _dckr "${cntr}" /bin/bash } # Clean up after test suite run diff --git a/testing/docker/docker-remove-all.sh b/testing/docker/docker-remove-all.sh new file mode 100755 index 0000000..d73ba1e --- /dev/null +++ b/testing/docker/docker-remove-all.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +for c in `docker ps -a -q`; do + docker rm $c +done +for i in `docker images -q`; do + docker rmi --force $i +done diff --git a/testing/docker/gentoo-amd64/Dockerfile b/testing/docker/gentoo-amd64/Dockerfile index 455e315..ab5ac94 100644 --- a/testing/docker/gentoo-amd64/Dockerfile +++ b/testing/docker/gentoo-amd64/Dockerfile @@ -1,4 +1,8 @@ FROM gentoo/stage3-amd64-hardened +ARG CTNG_UID +ARG CTNG_GID +RUN groupadd -g $CTNG_GID ctng +RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 RUN chmod a+x /sbin/dumb-init ENTRYPOINT [ "/sbin/dumb-init", "--" ] diff --git a/testing/docker/mint19-amd64/Dockerfile b/testing/docker/mint19-amd64/Dockerfile new file mode 100644 index 0000000..8fdcc52 --- /dev/null +++ b/testing/docker/mint19-amd64/Dockerfile @@ -0,0 +1,11 @@ +FROM linuxmintd/mint19-amd64 +ARG CTNG_UID +ARG CTNG_GID +RUN groupadd -g $CTNG_GID ctng +RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng +RUN apt-get update +RUN apt-get install -y gcc gperf bison flex texinfo help2man make libncurses5-dev \ + python-dev autoconf automake libtool libtool-bin gawk +RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 +RUN chmod a+x /sbin/dumb-init +ENTRYPOINT [ "/sbin/dumb-init", "--" ] -- cgit v0.10.2-6-g49f6