From: Daniel Karbach Date: Thu, 24 Nov 2016 10:32:30 +0000 (+0100) Subject: different docker exec approach X-Git-Url: https://git.localhorst.tv/?a=commitdiff_plain;h=bc35c2b12391c30c86ab8b713f456c7d8a5d701d;p=blank.git different docker exec approach --- diff --git a/scripts/docker/archlinux-build/Dockerfile b/scripts/docker/archlinux-build/Dockerfile index 12d26f6..fe9592f 100644 --- a/scripts/docker/archlinux-build/Dockerfile +++ b/scripts/docker/archlinux-build/Dockerfile @@ -1,16 +1,10 @@ -FROM rafaelsoares/archlinux-devel +FROM localhorsttv/archlinux-run:latest -RUN sudo pacman -S --noconfirm \ +RUN pacman -S --needed --noconfirm \ + base-devel \ cppcheck \ cppunit \ - freealut \ git \ - glew \ glm \ - openal \ - sdl2 \ - sdl2_image \ - sdl2_net \ - sdl2_ttf \ - zlib \ - ; + && \ + paccache -rk 0 diff --git a/scripts/docker/archlinux-run/Dockerfile b/scripts/docker/archlinux-run/Dockerfile index ed69ac9..9bf76db 100644 --- a/scripts/docker/archlinux-run/Dockerfile +++ b/scripts/docker/archlinux-run/Dockerfile @@ -1,13 +1,25 @@ -FROM rafaelsoares/archlinux +FROM base/archlinux -RUN sudo pacman -S --noconfirm \ +RUN echo 'Server = http://mirror.23media.de/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist && \ + pacman-key --init && \ + pacman-key --populate archlinux && \ + pacman -Sy --noconfirm archlinux-keyring && \ + pacman -S --noconfirm pacman && \ + pacman-db-upgrade && \ + pacman -Su --noconfirm && \ + pacman -S --noconfirm mesa-libgl xorg-server-xvfb && \ + paccache -rk 0 + +RUN pacman -S --needed --noconfirm \ freealut \ glew \ - glm \ openal \ sdl2 \ sdl2_image \ sdl2_net \ sdl2_ttf \ zlib \ - ; + && \ + paccache -rk 0 && \ + mkdir -p /etc/openal && \ + echo -e '[general]\ndrivers = null' > /etc/openal/alsoft.conf diff --git a/scripts/docker/exec.bash b/scripts/docker/exec.bash index faabff4..8244059 100755 --- a/scripts/docker/exec.bash +++ b/scripts/docker/exec.bash @@ -4,30 +4,27 @@ # environment varables: # IMAGE: name of the docker image to use # TARGETS: targets to pass to `make` inside the container -# PASS_ENV: names of environment variables to import into -# the container during build +# KEEP: file names to copy back out after all TARGETS have run IMAGE="${IMAGE:-archlinux-build}" image_name="localhorsttv/${IMAGE}" image_path="scripts/docker/${IMAGE//:/-}" -build_cmd="cd /repo && make -j\$(nproc) $TARGETS" +xvfb_cmd="xvfb-run -a --server-args='-screen 0 1024x768x24 +extension RANDR +extension GLX'" -local_conf="" +build_cmd="git clone /repo /workdir && cd /workdir && make -j\$(nproc) $TARGETS" -if [[ "$TARGETS" == *codecov* ]]; then - local_conf="$local_conf $(bash <(curl -s https://codecov.io/env))" +if [[ "$KEEP" != "" ]]; then + build_cmd="${build_cmd} && cp -Rv $KEEP /repo" fi -if [ -e "${image_path}/env" ]; then - local_conf="$local_conf --env-file ${image_path}/env" -fi -# copy XDG_RUNTIME_DIR if set -if [ "$XDG_RUNTIME_DIR" != "" ]; then - local_conf="$local_conf -e XDG_RUNTIME_DIR='$XDG_RUNTIME_DIR'" +local_conf="" + +if [[ "$TARGETS" == *codecov* ]]; then + local_conf="$local_conf $(bash <(curl -s https://codecov.io/env))" fi docker build -t "${image_name}" --pull=true "${image_path}" -docker run -v "$PWD":/repo ${local_conf} "${image_name}" xvfb-run --server-args="-screen 0 1024x768x24" bash -c "env ; glewinfo | head ; ${build_cmd}" +docker run -v "$PWD":/repo ${local_conf} "${image_name}" sh -c "$xvfb_cmd sh -c 'env ; glewinfo | head ; ${build_cmd}'" diff --git a/scripts/docker/ubuntu-build-latest/Dockerfile b/scripts/docker/ubuntu-build-latest/Dockerfile index ae344bd..15a23de 100644 --- a/scripts/docker/ubuntu-build-latest/Dockerfile +++ b/scripts/docker/ubuntu-build-latest/Dockerfile @@ -15,3 +15,5 @@ RUN apt -y install --no-install-recommends \ libsdl2-ttf-dev \ zlib1g-dev \ ; + +ENV LDXXFLAGS=-L/usr/lib/x86_64-linux-gnu LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu diff --git a/scripts/docker/ubuntu-build-latest/env b/scripts/docker/ubuntu-build-latest/env deleted file mode 100644 index 13f8143..0000000 --- a/scripts/docker/ubuntu-build-latest/env +++ /dev/null @@ -1 +0,0 @@ -LDXXFLAGS=-L/usr/lib/x86_64-linux-gnu