Improvements toward working with a shared host X server
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
# File Created: Saturday, 8th January 2022 2:34:23 pm
|
||||
# Author: Josh.5 (jsunnex@gmail.com)
|
||||
# -----
|
||||
# Last Modified: Monday, 10th January 2022 11:04:51 pm
|
||||
# Last Modified: Tuesday, 11th January 2022 9:43:50 pm
|
||||
# Modified By: Josh.5 (jsunnex@gmail.com)
|
||||
###
|
||||
|
||||
@@ -13,37 +13,100 @@ script_path=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd );
|
||||
project_base_path=$(realpath ${script_path}/..);
|
||||
|
||||
|
||||
if [[ ${1} == "stop" ]]; then
|
||||
docker stop steam-headless
|
||||
docker rm steam-headless
|
||||
# Parse params
|
||||
additional_docker_params=""
|
||||
container_name="steam"
|
||||
for ARG in ${@}; do
|
||||
case ${ARG} in
|
||||
*primary)
|
||||
primary="true";
|
||||
;;
|
||||
*nvidia)
|
||||
nvidia="true";
|
||||
;;
|
||||
*hostx)
|
||||
hostx="true";
|
||||
;;
|
||||
*fb)
|
||||
framebuffer="true";
|
||||
;;
|
||||
stop)
|
||||
script_mode="stop"
|
||||
;;
|
||||
tail)
|
||||
script_mode="tail"
|
||||
;;
|
||||
user)
|
||||
script_mode="user"
|
||||
;;
|
||||
root)
|
||||
script_mode="root"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [[ "${primary}" == "true" ]]; then
|
||||
container_name="${container_name}-p"
|
||||
additional_docker_params="${additional_docker_params} -e MODE='primary'"
|
||||
hostx="false"
|
||||
else
|
||||
container_name="${container_name}-s"
|
||||
additional_docker_params="${additional_docker_params} -e MODE='secondary'"
|
||||
framebuffer="false"
|
||||
fi
|
||||
if [[ "${hostx}" == "true" ]]; then
|
||||
container_name="${container_name}-hx"
|
||||
additional_docker_params="${additional_docker_params} -v /tmp/.X11-unix:/tmp/.X11-unix"
|
||||
additional_docker_params="${additional_docker_params} -e MODE='secondary'"
|
||||
nvidia="false"
|
||||
framebuffer="false"
|
||||
else
|
||||
additional_docker_params="${additional_docker_params} -v /tmp/headless/.X11-unix:/tmp/.X11-unix"
|
||||
fi
|
||||
if [[ "${nvidia}" == "true" ]]; then
|
||||
container_name="${container_name}-hw"
|
||||
additional_docker_params="${additional_docker_params} --runtime=nvidia"
|
||||
framebuffer="false"
|
||||
fi
|
||||
if [[ "${framebuffer}" == "true" ]]; then
|
||||
# TODO: Enable xvfb
|
||||
container_name="${container_name}-fb"
|
||||
fi
|
||||
|
||||
|
||||
# If a mode was given, run that instead
|
||||
if [[ "${script_mode}" == "stop" ]]; then
|
||||
docker stop ${container_name}
|
||||
docker rm ${container_name}
|
||||
exit $?
|
||||
elif [[ ${1} == "tail" ]]; then
|
||||
docker logs -f steam-headless
|
||||
elif [[ "${script_mode}" == "tail" ]]; then
|
||||
docker logs -f ${container_name}
|
||||
exit $?
|
||||
elif [[ ${1} == "user" ]]; then
|
||||
docker exec -ti --user default steam-headless bash
|
||||
elif [[ "${script_mode}" == "user" ]]; then
|
||||
docker exec -ti --user default ${container_name} bash
|
||||
exit $?
|
||||
elif [[ ${1} == "root" ]]; then
|
||||
docker exec -ti --user 0 steam-headless bash
|
||||
elif [[ "${script_mode}" == "root" ]]; then
|
||||
docker exec -ti --user 0 ${container_name} bash
|
||||
exit $?
|
||||
fi
|
||||
|
||||
|
||||
docker stop steam-headless
|
||||
docker rm steam-headless
|
||||
# Stop previous instance
|
||||
docker stop ${container_name}
|
||||
docker rm ${container_name}
|
||||
sleep 1
|
||||
|
||||
|
||||
docker run -d --name='steam-headless' \
|
||||
--privileged=true \
|
||||
--net='br0' --ip='192.168.1.208' \
|
||||
--cpuset-cpus='3,9,4,10,5,11' \
|
||||
# Run
|
||||
docker run -d --name="${container_name}" \
|
||||
--privileged=true \
|
||||
--ipc="host" \
|
||||
-e PUID="99" \
|
||||
-e PGID="100" \
|
||||
-e UMASK='000' \
|
||||
-e UMASK="000" \
|
||||
-e USER_PASSWORD="password" \
|
||||
-e USER="default" \
|
||||
-e HOME="/home/test" \
|
||||
-e USER_HOME="/home/default" \
|
||||
-e TZ="Pacific/Auckland" \
|
||||
-e USER_LOCALES="en_US.UTF-8 UTF-8" \
|
||||
@@ -53,14 +116,17 @@ docker run -d --name='steam-headless' \
|
||||
-e DISPLAY_SIZEH="720" \
|
||||
-e DISPLAY_SIZEW="1280" \
|
||||
-e DISPLAY_VIDEO_PORT="DFP" \
|
||||
-e DISPLAY=":0" \
|
||||
-e DISPLAY=":55" \
|
||||
-e NVIDIA_DRIVER_CAPABILITIES="all" \
|
||||
-e NVIDIA_VISIBLE_DEVICES="all" \
|
||||
-v "${project_base_path}/config/home/default":'/home/default':'rw' \
|
||||
--hostname='steam-headless' \
|
||||
-p 8083:8083 \
|
||||
-p 32123:32123 \
|
||||
-v "${project_base_path}/config/home/default-${container_name}":"/home/default":"rw" \
|
||||
-v "/tmp/":"/tmp/":"rw" \
|
||||
--hostname="${container_name}" \
|
||||
--shm-size=2G \
|
||||
--runtime=nvidia \
|
||||
josh5/steam-headless:latest
|
||||
${additional_docker_params} \
|
||||
josh5/steam-headless:develop
|
||||
|
||||
|
||||
docker logs -f steam-headless
|
||||
docker logs -f ${container_name}
|
||||
|
||||
Reference in New Issue
Block a user