-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
# 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}'"