Skip to content
/ steam Public

Delivers a range of games straight to a computer's desktop.

License

Notifications You must be signed in to change notification settings

izogain/steam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Steam in Docker

Why?

Some people asked me why would someone want to have Steam in a Docker container?

Few main points which pushed me making this Docker container:

  1. I want to set-up more fences when running the code I don't/can't trust;

  2. I don't want to spend time on figuring out how to install Steam (what deps) in a non-Debian (or non-SteamOS) based distro;

  3. I like cleanliness: I can erase Steam and all its dependencies in a matter of seconds;

And few Pros from my PoV:

  • I can have Steam on my Ubuntu/openSUSE/[put any other distro I will want to use] in a short time that Docker takes when downloads this Steam container;

  • Since Steam is meant to run in Debian (SteamOS) based distro, it is not a problem anymore, since it is in a container now.

Suggestions / PR's are welcomed!

Tested with

Tested in Ubuntu 16.04 LTS (64bit) and openSUSE Leap 42.1 with the following GPU's:

  • Intel HD Graphics 3000
  • Intel HD Graphics 4400
  • NVIDIA's GeForce GTX 560 Ti

Requirements

Building and launching Steam

Build Steam Docker image

You may want to re-run this command later on in order to keep the image updated.

docker build -t andrey01/steam .

Launch the Steam in Docker

You may need to allow your user making local connections to X server, which can be achieved with this command:

xhost +SI:localuser:$(id -un)

You can use the following shortcut function and place it to your ~/.bash_aliases file

function docker_helper() { { pushd ~/docker/$1; docker-compose rm -fa "$1"; docker-compose run -d --name "$1" "$@"; popd; } }
function steam() { { docker_helper $FUNCNAME $@; } }

Then just issue "steam" command to run Steam in docker.

Troubleshooting

You might want to modify the docker-compose.yml in case of problems, the file should be pretty self explanatory, although you may refer to the official Docker Compose file reference

Also keep in mind to uncomment or/and add your devices to the devices: section there.

The best result is when you have a similar to the following output, using the glxgears (part of mesa-utils package):

If you are getting segmentation fault error or Steam does not start, then you could try resetting its config:

$ docker-compose run --rm steam --reset

Grsecurity notes

grsec: TPE

Trusted Path Execution (TPE)

This Steam docker image is working with the grsecurity patched kernel. It only needs a /proc/sys/kernel/grsecurity/tpe_gid accessible by root for read.

grsec: PaX

It is also working with PaX part of the grsecurity.
I have tested it with Half-Life games like CS 1.6, and CS:GO.
Please refer to the launch file if grsecurity is blocking some executable or a library.

Links

Below is just bunch of links, someone might find them useful

About

Delivers a range of games straight to a computer's desktop.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages