Giter VIP home page Giter VIP logo

steamos_docker's Introduction

steamos_docker

Builds a SteamOS docker image directly from Valve repositories. (for the paranoid.)

[TL;DR] Requires Docker 1.13 or later. From an account with Docker privileges (e.g. root), run the following:

XUSER= export STEAMUSER_UID=$(id -u ${XUSER}) export STEAMUSER_GID=$(id -g ${XUSER}) export STEAMUSER_HOME=$(grep "${XUSER}" /etc/passwd | cut -f6 -d:) mkdir ${STEAMUSER_HOME}/steamhome && chown ${XUSER}:${XUSER} ${XUSER}/steamhome make util/steambox

>
>You'll build and launch a docker image named `steambox`.  Type `steam` to run the steam launcher.
>
>*Note: still working to streamline this process*


Currently configured to build SteamOS `brewmaster`.  Other suites are untested.


All binaries are pulled from http://repo.steampowered.com/steamos using gpg keys from `hkp://ha.pool.sks-keyservers.net:80`.


The filesystem build runs as root inside a bootstrap container [FROM](https://docs.docker.com/engine/reference/builder/#/from) the official `debian:jessie` base image.  Once the SteamOS file tree is built, it is pulled from the container and installed onto the Docker host with `docker build`.

Run "make" (as root) to:
  1. Create a build machine based on `debian:jessie`, called `steamos_buildmach`
  2. Load all dependencies needed to bootstrap a SteamOS image
  3. Run a `steamos_buildmach` container, producing a SteamOS root file system
  4. Build a `$(SUITE)` SteamOS *(minbase)* base image, where `$(SUITE)` defaults to `brewmaster`
  4. Build `steambox` image that can actually run the steam launcher


## Makefile Targets

Target | Description
-------|--------
all | Equivalent to `steambox`
steambox | Builds the `steambox` image and all dependencies
baseimage | Builds the SteamOS minbase Docker base image
build-baseimage | Forcibly rebuilds `baseimage` even if you already have one
delete-baseimage | Deletes all `baseimage` containers and local repository images. *NOTE: asks for confirmation*
steamos_buildmach | Builds `steamos_buildmach`: a Debian image that can build SteamOS base images
debug-buildmach | Runs `steamos_buildmach` with bash tty.
clean | Equivalent to `docker rm -f steamos_buildmach steambox`.
distclean | Removes `steambox`, `buildmach`, and build artifacts.  Retains the baseimage.
steambox_ati | Builds `steambox_ati`: a derivative of `steambox` with support for ATI video cards.
steambox_nvidia | Builds `steambox_nvidia`: a derivative of `steambox` with support for NVIDIA video cards.


## Makefile Build Parameters

Parameter | Default | Description
----------|---------|-------------
STEAMUSER_UID | *none* | The user id of the *host* user running Steam.  Required for the `steambox` target only.
STEAMUSER_GID | *none* | The group id of the *host* user running Steam.  Required for the `steambox` target only.
STEAMUSER_HOME | *none* | The home directory of the *host* user running Steam.  Required for the `steambox` target only.
BASEIMAGE | `$(SUITE)` | Docker repository name for the final SteamOS base image
SUITE | brewmaster | SteamOS version to build
VARIANT | minbase | [debootstrap](https://wiki.debian.org/Debootstrap) variant of SteamOS to build
STEAMREPO | http://repo.steampowered.com/steamos | Where to get the SteamOS binaries
DOCKER | docker | The program used to control the docker daemon
DRIVERFILE | AMD-Catalyst-15.9-Linux-installer-15.201.1151-x86.x86_64.run | **ATI build only** The video driver installer (you must download it into `steambox_ati`)


## Running The Driver-Specific Builds

STEAMBOX=steambox_nvidia ./util/steambox

steamos_docker's People

Contributors

rsharo avatar jcorrado avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.