Add rootless steamcmd base image under apps/steamcmd with apt-based install, renovate-compatible version pinning, /config runtime seeding, hardened runtime init flow, and readonly-rootfs compatibility#1415
Conversation
steamcmd base image under apps/steamcmd for downstream game containers
|
@copilot ensure tests also actually run steamcmd |
|
@copilot ensure its version pinned to actual steamcmd version And I'm not sure if apt-get is the most up-to-date source for steamcmd either |
Updated the steamcmd container test to actually execute SteamCMD via a command check ( Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Done in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
steamcmd base image under apps/steamcmd for downstream game containerssteamcmd base image under apps/steamcmd with pinned package version
|
@copilot I think we can better download steam directly from... steam... instead of this outdated crap Also we should actually test it |
|
@copilot I think we can better download steam directly from... steam... instead of this outdated crap Also we should actually test it |
Done in
Implemented in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
steamcmd base image under apps/steamcmd with pinned package versionsteamcmd base image under apps/steamcmd with direct Steam CDN download and pinned checksum
|
@copilot steamcmd will be online available during testing |
Addressed in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot ensure version pinning that is renovate compatible (with renovate comment) actual versions from steam. Also make sure the directory where games are downloaded to is in /config |
Implemented in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
steamcmd base image under apps/steamcmd with direct Steam CDN download and pinned checksumsteamcmd base image under apps/steamcmd with direct Steam CDN download, renovate-compatible pinning, and /config download path
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: Crow-Control <7613738+Crow-Control@users.noreply.github.com>
Done in |
|
@copilot ensure this works using readonlyrootfs (so where only /config is mounted and hence writeable) |
steamcmd base image under apps/steamcmd with apt-based install, renovate-compatible VERSION pinning, /config runtime seeding, and runtime app-id/login env initializationsteamcmd base image under apps/steamcmd with apt-based install, renovate-compatible version pinning, /config runtime seeding, and hardened runtime init flow
Co-authored-by: Crow-Control <7613738+Crow-Control@users.noreply.github.com>
Implemented in |
steamcmd base image under apps/steamcmd with apt-based install, renovate-compatible version pinning, /config runtime seeding, and hardened runtime init flowsteamcmd base image under apps/steamcmd with apt-based install, renovate-compatible version pinning, /config runtime seeding, hardened runtime init flow, and readonly-rootfs compatibility
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Removed the commands section from the container test configuration. Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
📦 App Size AnalysisNote Comparing 📈 Size Comparison Table
|
This PR adds a new rootless SteamCMD base image at
apps/steamcmdfor downstream game-specific containers, and incorporates follow-up fixes from review feedback to stabilize runtime behavior, security posture, and CI tests.Changes Made
apps/steamcmd/Dockerfileapps/steamcmd/docker-bake.hclapps/steamcmd/container-test.yamlapps/steamcmd/start.shghcr.io/trueforge-org/ubuntu:24.4.0@sha256:..., final runtime user remainsapps.steamcmd:i386=0~${VERSION}start.sh(not build-time write to/config):/config/Steam/steamcmdwhen missing.STEAM_APP_IDS(comma-separated)STEAM_INSTALL_DIR(default/config/steamapps)STEAM_APP_VALIDATE=trueSTEAMCMD_SKIP_APP_UPDATE=trueSTEAM_USERNAME/STEAM_PASSWORD(withSTEAM_USERfallback)STEAMCMD_PRE_UPDATE=trueby defaultexec "$@"for non-+...argv)STEAM_PASSWORD+runscriptfiles/configexists and is owned byappsin the image/config/steamcmd/tmp(no required writes to rootfs paths)image-allremainslinux/amd64only (arm disabled).Test Coverage
steamcmd +quit) with deterministic output check (Steam Console Client).package-version/start.sh/usr/local/bin/steamcmd/usr/local/share/steamcmd/steamcmd.sh/configfile-existence command check that was invalid in isolated command-check containers.Validation
healthcheck.sh./configwritable.✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.