Skip to content

Commit 3cce621

Browse files
committed
feat: add Ubuntu 26.04 (Resolute Raccoon) support
- Added Dockerfile for Ubuntu 26.04 - Added build job to GitHub Actions workflow - Updated README with new tag information and fixed a typo
1 parent fc2d460 commit 3cce621

3 files changed

Lines changed: 121 additions & 8 deletions

File tree

.github/workflows/action-docker-publish.yml

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,54 @@ on:
1010
- cron: "0 1 * * 6"
1111

1212
jobs:
13+
build-ubuntu-2604:
14+
name: Build Ubuntu 26.04
15+
runs-on: ubuntu-latest
16+
permissions:
17+
packages: write
18+
contents: read
19+
attestations: write
20+
id-token: write
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v5
24+
25+
- name: Setup QEMU
26+
uses: docker/setup-qemu-action@v3
27+
28+
- name: Login to Docker Hub
29+
uses: docker/login-action@v3
30+
with:
31+
username: ${{ secrets.DOCKER_HUB_USERNAME }}
32+
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
33+
34+
- name: Login to GitHub Container Registry
35+
uses: docker/login-action@v3
36+
with:
37+
registry: ghcr.io
38+
username: ${{ github.actor }}
39+
password: ${{ secrets.GITHUB_TOKEN }}
40+
41+
- name: Extract metadata (tags, labels) for Docker
42+
id: meta
43+
uses: docker/metadata-action@v5
44+
with:
45+
images: |
46+
gameservermanagers/steamcmd
47+
ghcr.io/gameservermanagers/steamcmd
48+
tags: |
49+
ubuntu-26.04
50+
51+
- name: Build and push (Ubuntu 26.04)
52+
uses: docker/build-push-action@v6
53+
with:
54+
context: .
55+
file: ./Dockerfile.ubuntu-2604
56+
platforms: linux/amd64
57+
push: true
58+
tags: ${{ steps.meta.outputs.tags }}
59+
labels: ${{ steps.meta.outputs.labels }}
60+
1361
build-ubuntu-2404:
1462
name: Build Ubuntu 24.04
1563
runs-on: ubuntu-latest
@@ -158,7 +206,7 @@ jobs:
158206

159207
package-cleanup:
160208
name: Cleanup Old GitHub Packages
161-
needs: [build-ubuntu-2004, build-ubuntu-2204, build-ubuntu-2404]
209+
needs: [build-ubuntu-2004, build-ubuntu-2204, build-ubuntu-2404, build-ubuntu-2604]
162210
runs-on: ubuntu-latest
163211
steps:
164212
- name: Delete Package Versions

Dockerfile.ubuntu-2604

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
FROM ubuntu:26.04
2+
3+
## Remove ubuntu user added by default
4+
RUN touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu
5+
6+
ARG DEBIAN_FRONTEND=noninteractive
7+
ARG PUID=1000
8+
ARG PGID=1000
9+
ARG BUILD_DATE
10+
ARG VCS_REF
11+
12+
LABEL maintainer="LinuxGSM <me@danielgibbs.co.uk>" \
13+
org.opencontainers.image.title="SteamCMD" \
14+
org.opencontainers.image.description="SteamCMD headless image for acquiring dedicated server files" \
15+
org.opencontainers.image.url="https://github.com/GameServerManagers/docker-steamcmd" \
16+
org.opencontainers.image.source="https://github.com/GameServerManagers/docker-steamcmd" \
17+
org.opencontainers.image.vendor="GameServerManagers" \
18+
org.opencontainers.image.licenses="MIT" \
19+
org.opencontainers.image.created=$BUILD_DATE \
20+
org.opencontainers.image.revision=$VCS_REF
21+
22+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
23+
24+
# Install SteamCMD
25+
RUN echo "**** Install SteamCMD ****" \
26+
&& echo steam steam/question select "I AGREE" | debconf-set-selections \
27+
&& echo steam steam/license note '' | debconf-set-selections \
28+
&& dpkg --add-architecture i386 \
29+
&& apt-get update \
30+
&& apt-get install -y --no-install-recommends \
31+
ca-certificates \
32+
locales \
33+
lib32gcc-s1 \
34+
libsdl2-2.0-0:i386 \
35+
tzdata \
36+
steamcmd \
37+
gosu \
38+
&& ln -s /usr/games/steamcmd /usr/bin/steamcmd \
39+
&& locale-gen en_US.UTF-8 \
40+
&& apt-get -y autoremove \
41+
&& apt-get -y clean \
42+
&& rm -rf /usr/share/man /usr/share/doc /usr/share/info /usr/share/lintian /usr/share/locale/* \
43+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
44+
45+
# Add unicode support
46+
ENV LANG=en_US.UTF-8
47+
48+
# Create non-root user (default IDs; can be adjusted at runtime by entrypoint)
49+
RUN groupadd -g "${PGID}" steam \
50+
&& useradd -l -u "${PUID}" -g steam -m -d /home/steam -s /bin/bash steam \
51+
&& mkdir -p /home/steam/Steam \
52+
&& chown -R steam:steam /home/steam
53+
54+
WORKDIR /home/steam
55+
56+
# Bootstrap SteamCMD as steam user
57+
RUN su -s /bin/bash - steam -c 'steamcmd +login anonymous +quit || true'
58+
59+
# Copy entrypoint
60+
COPY docker-entrypoint.sh /docker-entrypoint.sh
61+
RUN chmod +x /docker-entrypoint.sh
62+
63+
ENTRYPOINT ["/docker-entrypoint.sh"]
64+
CMD ["+help", "+quit"]

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ SteamCMD is a command-line version of the Steam client. It allows you to downloa
1515

1616
## Tags
1717

18-
| Tag(s) | Ubuntu Release | Standard Support Ends\* | Notes |
19-
| ------------------ | --------------------------- | ----------------------- | ---------------------------------- |
20-
| `latest`, `ubuntu` | 24.04 LTS (Noble) | April 2029 | Current LTS |
21-
| `ubuntu-24.04` | 24.04 LTS (Noble Numbat) | April 2029 | Current LTS |
22-
| `ubuntu-22.04` | 22.04 LTS (Jammy Jackalope) | April 2027 | Previous LTS |
23-
| `ubuntu-20.04` | 20.04 LTS (Focal Fossa) | April 2025 | Legacy (receives security updates) |
18+
| Tag(s) | Ubuntu Release | Standard Support Ends\* | Notes |
19+
| ------------------ | -------------------------------- | ----------------------- | ---------------------------------- |
20+
| `latest`, `ubuntu` | 24.04 LTS (Noble Numbat) | April 2029 | Current LTS |
21+
| `ubuntu-26.04` | 26.04 LTS (Resolute Raccoon) | April 2031 | Upcoming LTS |
22+
| `ubuntu-24.04` | 24.04 LTS (Noble Numbat) | April 2029 | Current LTS |
23+
| `ubuntu-22.04` | 22.04 LTS (Jammy Jellyfish) | April 2027 | Previous LTS |
24+
| `ubuntu-20.04` | 20.04 LTS (Focal Fossa) | April 2025 | Legacy (ESM only; may be removed) |
2425

2526
\*Dates are end of standard (free) security updates per Canonical's published LTS schedule. Extended Security Maintenance (ESM) may continue beyond these dates, but images may be deprecated earlier if upstream packages (e.g. SteamCMD dependencies) become unavailable.
2627

@@ -50,7 +51,7 @@ SteamCMD stores its own library data (manifests, depots, workshop cache) in `/ho
5051
/home/steam/.local/share/Steam/steamapps/common/<AppName>
5152
```
5253

53-
Using a distinct mount (e.g. `/data`) along with `+force_install_dir /data` keeps app files seperate from the Steam library cache.
54+
Using a distinct mount (e.g. `/data`) along with `+force_install_dir /data` keeps app files separate from the Steam library cache.
5455

5556
### Bind Mount Example
5657

0 commit comments

Comments
 (0)