[PR #69] [MERGED] refactor compose files to (hopefully) make it easier to pick and choose containers #131

Closed
opened 2026-10-15 12:49:20 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/gow/pull/69
Author: @zb140
Created: 7/30/2022
Status: ✅ Merged
Merged: 9/3/2022
Merged by: @zb140

Base: master ← Head: zb140/refactor-compose-files


📝 Commits (10+)

  • a21ddad refactor compose files to (hopefully) make it easier to pick and choose containers
  • 5d3db02 add a launch script
  • 3e2c96d pass extra args from run-gow to docker-compose; fix typo
  • f9369ee Fix for docker-compose > v2.6.0
  • 058358e fix default local_state location
  • f796858 add location of nvidia drivers on Arch
  • 042203b some run-gow updates: add comments, refactor for readability, add --env-file option, check for a compatible docker-compose version. update docs to refer to run-gow instead of docker-compose directly.
  • 61c5163 Address testing feedback
  • 88ca7f7 need the udev container in host-desktop mode too; add a host-desktop.yml; update docs
  • 3c189cf forgot a file

📊 Changes

28 files changed (+789 additions, -571 deletions)

View changed files

➖ .env (+0 -47)
📝 README.md (+12 -4)
➕ compose/firefox.yml (+24 -0)
➕ compose/headless.yml (+77 -0)
➕ compose/host-dekstop.yml (+2 -0)
➕ compose/retroarch.yml (+47 -0)
➕ compose/steam.yml (+46 -0)
➕ config/common.env (+1 -0)
➕ config/intel.env (+3 -0)
➕ config/nvidia.env (+2 -0)
➕ config/xorg.env (+2 -0)
📝 docker-compose.yml (+24 -179)
📝 docs/modules/ROOT/pages/components-overview.adoc (+1 -2)
📝 docs/modules/ROOT/pages/debian-desktop.adoc (+34 -182)
📝 docs/modules/ROOT/pages/debian-headless.adoc (+21 -7)
📝 docs/modules/ROOT/pages/desktop.adoc (+0 -3)
📝 docs/modules/ROOT/pages/docker-build.adoc (+3 -1)
📝 docs/modules/ROOT/pages/headless-unraid.adoc (+24 -27)
📝 docs/modules/ROOT/pages/how-to-use.adoc (+11 -31)
📝 docs/modules/ROOT/pages/kubernetes.adoc (+1 -1)

...and 8 more files

📄 Description

There's sort of two "modes" we can run in: "headless" (ie, run Xorg containerized), and "host" (ie, use the Xorg running on the host). With just a single docker-compose.yml file, we have to choose which one of those is going to be the checked-in version, and anyone who wants to run the other will have to make manual modifications to the file.

This is a proposal for a method of making that easier. I've split the configuration into several files. Now there's:

  • A base docker-compose.yml that just launches a containerized Sunshine
  • compose/headless.yml, which adds xorg, udevd, and pulse, for systems that don't have those already
  • compose/steam.yml, compose/retroarch.yml, and compose/firefox.yml, which add those respective applications

I've also added some files in the env subdirectory; these allow adding the same set of environment variables to multiple containers without a bunch of error-prone copy and paste.

I've tested this pretty well on my unRAID server and things seem to be going well, but I don't have a host to try on that already has Xorg etc, so that could use some testing.

What do you think?


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/gow/pull/69 **Author:** [@zb140](https://github.com/zb140) **Created:** 7/30/2022 **Status:** ✅ Merged **Merged:** 9/3/2022 **Merged by:** [@zb140](https://github.com/zb140) **Base:** `master` ← **Head:** `zb140/refactor-compose-files` --- ### 📝 Commits (10+) - [`a21ddad`](https://github.com/games-on-whales/gow/commit/a21ddad6e56e93d04954e13286399a98ca81997e) refactor compose files to (hopefully) make it easier to pick and choose containers - [`5d3db02`](https://github.com/games-on-whales/gow/commit/5d3db028f72651e809fd475b559c7fe74c246b7f) add a launch script - [`3e2c96d`](https://github.com/games-on-whales/gow/commit/3e2c96d42100301b4f42c1cac828dd8b303915ab) pass extra args from run-gow to docker-compose; fix typo - [`f9369ee`](https://github.com/games-on-whales/gow/commit/f9369ee2082e28bb14e9d70cb2546eb15113a544) Fix for docker-compose > v2.6.0 - [`058358e`](https://github.com/games-on-whales/gow/commit/058358e32830c034568b858680889bfa952867df) fix default local_state location - [`f796858`](https://github.com/games-on-whales/gow/commit/f7968580e7caaa9041e2edae5904460261d1d5c3) add location of nvidia drivers on Arch - [`042203b`](https://github.com/games-on-whales/gow/commit/042203b27d2109df260907e356a70c57803cc898) some run-gow updates: add comments, refactor for readability, add --env-file option, check for a compatible docker-compose version. update docs to refer to run-gow instead of docker-compose directly. - [`61c5163`](https://github.com/games-on-whales/gow/commit/61c51639eeee6fb9efc42ee901e7df923cd4198a) Address testing feedback - [`88ca7f7`](https://github.com/games-on-whales/gow/commit/88ca7f746aa049e45cd5390365b551c1397ba28e) need the udev container in host-desktop mode too; add a host-desktop.yml; update docs - [`3c189cf`](https://github.com/games-on-whales/gow/commit/3c189cfb37786e2d7559bf4035bbb4269943ca77) forgot a file ### 📊 Changes **28 files changed** (+789 additions, -571 deletions) <details> <summary>View changed files</summary> ➖ `.env` (+0 -47) 📝 `README.md` (+12 -4) ➕ `compose/firefox.yml` (+24 -0) ➕ `compose/headless.yml` (+77 -0) ➕ `compose/host-dekstop.yml` (+2 -0) ➕ `compose/retroarch.yml` (+47 -0) ➕ `compose/steam.yml` (+46 -0) ➕ `config/common.env` (+1 -0) ➕ `config/intel.env` (+3 -0) ➕ `config/nvidia.env` (+2 -0) ➕ `config/xorg.env` (+2 -0) 📝 `docker-compose.yml` (+24 -179) 📝 `docs/modules/ROOT/pages/components-overview.adoc` (+1 -2) 📝 `docs/modules/ROOT/pages/debian-desktop.adoc` (+34 -182) 📝 `docs/modules/ROOT/pages/debian-headless.adoc` (+21 -7) 📝 `docs/modules/ROOT/pages/desktop.adoc` (+0 -3) 📝 `docs/modules/ROOT/pages/docker-build.adoc` (+3 -1) 📝 `docs/modules/ROOT/pages/headless-unraid.adoc` (+24 -27) 📝 `docs/modules/ROOT/pages/how-to-use.adoc` (+11 -31) 📝 `docs/modules/ROOT/pages/kubernetes.adoc` (+1 -1) _...and 8 more files_ </details> ### 📄 Description There's sort of two "modes" we can run in: "headless" (ie, run Xorg containerized), and "host" (ie, use the Xorg running on the host). With just a single `docker-compose.yml` file, we have to choose which one of those is going to be the checked-in version, and anyone who wants to run the other will have to make manual modifications to the file. This is a proposal for a method of making that easier. I've split the configuration into several files. Now there's: - A base `docker-compose.yml` that just launches a containerized Sunshine - `compose/headless.yml`, which adds `xorg`, `udevd`, and `pulse`, for systems that don't have those already - `compose/steam.yml`, `compose/retroarch.yml`, and `compose/firefox.yml`, which add those respective applications I've also added some files in the `env` subdirectory; these allow adding the same set of environment variables to multiple containers without a bunch of error-prone copy and paste. I've tested this pretty well on my unRAID server and things seem to be going well, but I don't have a host to try on that already has Xorg etc, so that could use some testing. What do you think? --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:49:20 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/gow#131
No description provided.