From 9edf31b5bae98346098e629618317f2c24b4dcd7 Mon Sep 17 00:00:00 2001 From: Andrey Arapov Date: Fri, 28 Dec 2018 17:30:26 +0100 Subject: [PATCH] make sure steam can be safely restarted --- Dockerfile | 14 ++++++++------ launch | 22 +++++++++------------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5322eed..d17c4d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,12 +25,6 @@ RUN apt-get -y install dnsmasq COPY ./dnsmasq.conf /etc/dnsmasq.conf COPY ./resolv.dnsmasq /etc/resolv.dnsmasq -# Set locale to: en_US.UTF-8 -RUN apt-get -y install locales && \ - sed -i.orig '/^# en_US.UTF-8.*/s/^#.//g' /etc/locale.gen && \ - locale-gen && \ - update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 - # Let ALSA lib talk to Pulseaudio. # AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse" # ALSA lib confmisc.c:768:(parse_card) cannot find card '0' @@ -47,6 +41,14 @@ RUN apt-get -y install fontconfig:i386 # Enable Vulkan library. RUN apt-get -y install libvulkan1 libvulkan1:i386 vulkan-utils +RUN apt-get -y install gosu + +# Set locale to: en_US.UTF-8 +RUN apt-get -y install locales && \ + /bin/echo -e "en_US.UTF-8 UTF-8\nen_GB.UTF-8 UTF-8" | tee /etc/locale.gen && \ + locale-gen && \ + update-locale LANG=en_US.UTF-8 LC_ALL=en_GB.UTF-8 + LABEL maintainer="Andrey Arapov " COPY ./launch /launch ENTRYPOINT [ "/bin/bash", "/launch" ] diff --git a/launch b/launch index 67b57e0..25a53ad 100644 --- a/launch +++ b/launch @@ -8,18 +8,14 @@ service dnsmasq start id user >/dev/null 2>&1 [ $? -eq 0 ] || useradd -s /bin/bash -d /home/user -u ${USER_ID:-1000} -G audio,video user -# NOTE: This workaround has been obsolete by "apt-get -y install libnm-glib4:i386 libnm-util2:i386". -# WORKAROUND to "steam launcher crashes on second run (debian sid in a chroot on debian wheezy) #3501" -# https://github.com/ValveSoftware/steam-for-linux/issues/3501 -# rm -vf ~user/.local/share/Steam/config/config.vdf - -# LD_PRELOAD=$LD_PRELOAD:$(for LIB in ${PRELOAD_LIBS:-libnvidia-glcore.so tls/libnvidia-tls.so libGLX_nvidia.so}; do find /hostlibs -type f -iregex ".*/${LIB}.*" -print0; done | tr '\0' ':' ; echo) -# su -l user -c "HOME=/home/user STEAM_RUNTIME=${STEAM_RUNTIME:-1} LD_PRELOAD=$LD_PRELOAD steam $@" |& grep -v 'wrong ELF class' +LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/hostlibs/32:/hostlibs/64:" +LC_ALL=en_GB.UTF-8 +LANG=en_US.UTF-8 +STEAM_RUNTIME=${STEAM_RUNTIME:-1} -# LD_PRELOAD does not work well when you want to use Proton (modified version of Wine created by Steam) -# When running the games with Proton, they will fail with: -# "wine: Unhandled page fault on read access to 0x00000000 at address 0xf5c1c2b6 (thread 0009), starting debugger..." -# This is due to a mix of our LD_PRELOAD and Proton's. They add ".local/share/Steam/ubuntu12_{32,64}/gameoverlayrenderer.so". +export LD_LIBRARY_PATH +export LC_ALL +export LANG +export STEAM_RUNTIME -LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/hostlibs/32:/hostlibs/64:" -su -l user -c "HOME=/home/user STEAM_RUNTIME=${STEAM_RUNTIME:-1} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} steam $@" |& grep -v 'wrong ELF class' +gosu user steam $@ |& grep -v 'wrong ELF class'