You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.0 KiB

# Steam in Docker
Tested in Ubuntu 16.04 LTS (64bit) with the following GPU's:
- Intel HD Graphics 3000
- Intel HD Graphics 4400
- NVIDIA's GeForce GTX 560 Ti
## Requirements
- [Docker](https://www.docker.com/)
- (Optional) [Docker Compose](https://docs.docker.com/compose/)
## Limitations
- I have added the `/launch` script that will try to detect the working version of the NVIDIA drivers.
Currently this image supports these versions of the NVIDIA driver: 304, 340, 361.
It will fallback to the Generic OpenGL driver in case of failure.
# Building and launching Steam
## Create 32bit image
Create 32-bit Ubuntu 16.04 LTS (xenial) image
```
sudo apt-get -y install debootstrap
sudo debootstrap --arch=i386 xenial /tmp/xenial-chroot http://archive.ubuntu.com/ubuntu
sudo tar -C /tmp/xenial-chroot -c . | docker import - xenial32
sudo rm -rf /tmp/xenial-chroot
docker tag xenial32 andrey01/xenial32:latest
```
## 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 can drop the following aliases to your ~/.bash_aliases
```
alias docker="sudo docker"
alias docker-compose="sudo docker-compose"
alias steam="docker-compose -f $HOME/docker/steam/docker-compose.yml run --rm steam"
```
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](https://docs.docker.com/compose/compose-file/)
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):
```
$ docker-compose run --rm steam glxdebug
Attempting to load one of the supported NVIDIA drivers:
Trying to load NVIDIA driver version: 361 ... FAILURE
Trying to load NVIDIA driver version: 340 ... SUCCESS
LD_LIBRARY_PATH is set to: /usr/lib/nvidia-340
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER = GeForce GTX 560 Ti/PCIe/SSE2
GL_VERSION = 4.4.0 NVIDIA 340.96
GL_VENDOR = NVIDIA Corporation
GL_EXTENSIONS = GL_AMD_multi_draw_indirect GL_ARB_arrays_of_arrays ...
...
305 frames in 5.0 seconds = 60.878 FPS
301 frames in 5.0 seconds = 60.011 FPS
301 frames in 5.0 seconds = 60.009 FPS
305 frames in 5.0 seconds = 60.807 FPS
```
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
```
# Links
Below is just bunch of links, someone might find them useful
- https://wiki.ubuntu.com/Valve
- https://developer.valvesoftware.com/wiki/Steam_under_Linux#Ubuntu
- http://media.steampowered.com/client/installer/steam.deb
- http://repo.steampowered.com/steam/archive/precise/steam_latest.deb
- http://repo.steamstatic.com/steam/