Skip to content

Commit aa2d8a4

Browse files
authored
feat(base): add resolute (Ubuntu 26.04) image (#28)
1 parent 2e32dcb commit aa2d8a4

6 files changed

Lines changed: 106 additions & 3 deletions

File tree

.github/workflows/base.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ jobs:
2828
allow_failure: true
2929
- base: 'ubuntu'
3030
allow_failure: true
31+
- base: 'ubuntu-26.04'
32+
allow_failure: true
3133
continue-on-error: ${{ matrix.allow_failure }}
3234

3335
steps:

base/ubuntu-26.04/Dockerfile

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Base Ubuntu 26.04 image for AMP containers
2+
# cubecoders/ampbase:ubuntu-26.04
3+
4+
FROM ubuntu:resolute
5+
6+
LABEL org.opencontainers.image.source="https://github.com/CubeCoders/dockerfiles"
7+
LABEL org.opencontainers.image.licenses=MIT
8+
9+
ENV DEBIAN_FRONTEND="noninteractive"
10+
11+
ARG TARGETARCH
12+
13+
# Update base packages and install dependencies
14+
RUN set -eux; \
15+
mkdir -p /usr/share/man/man1; \
16+
apt-get update; \
17+
apt-get install -o APT::Keep-Downloaded-Packages="false" -y \
18+
ca-certificates curl wget tar unzip xz-utils bzip2 \
19+
coreutils procps iproute2 iputils-ping socat jq git git-lfs gnupg tmux dbus \
20+
tini tzdata locales gosu \
21+
libssl3t64 libcurl4t64 libsqlite3-0 libzstd1 libsdl2-2.0-0 libsdl1.2debian libfontconfig1 libicu78 \
22+
# Required for Proton
23+
python3 \
24+
# Required for Core Keeper
25+
xvfb xauth libxi6 \
26+
# Required for Valheim crossplay (and variously some others)
27+
libc6 libatomic1 libpulse0 libpulse-mainloop-glib0 \
28+
# Required for BeamMP
29+
liblua5.3-0 \
30+
# Required for Eco
31+
libgdiplus \
32+
# Required for Pavlov VR (and variously some others)
33+
gdb libc++1 libc++abi1 libunwind8 libgcc-s1; \
34+
\
35+
case "$TARGETARCH" in \
36+
amd64) \
37+
dpkg --add-architecture i386; \
38+
apt-get update; \
39+
apt-get install -o APT::Keep-Downloaded-Packages="false" -y \
40+
# Required for steamcmd
41+
libgcc-s1:i386 \
42+
# Others
43+
libstdc++6:i386 zlib1g:i386 libbz2-1.0:i386 libcurl4t64:i386 libcurl3t64-gnutls:i386 \
44+
libncurses6:i386 libtinfo6:i386 libsdl2-2.0-0:i386 libssl3t64:i386; \
45+
;; \
46+
\
47+
arm64) \
48+
dpkg --add-architecture armhf; \
49+
apt-get update; \
50+
apt-get install -o APT::Keep-Downloaded-Packages="false" -y \
51+
# Required for steamcmd
52+
libgcc-s1:armhf \
53+
# Others
54+
libstdc++6:armhf zlib1g:armhf libbz2-1.0:armhf libcurl4t64:armhf libcurl3t64-gnutls:armhf \
55+
libncurses6:armhf libtinfo6:armhf libsdl2-2.0-0:armhf libssl3t64:armhf; \
56+
\
57+
# Add box86/box64
58+
install -d -m 0755 /etc/apt/keyrings; \
59+
wget -qO- "https://pi-apps-coders.github.io/box86-debs/KEY.gpg" | gpg --dearmor -o /etc/apt/keyrings/box86-archive-keyring.gpg; \
60+
printf "Types: deb\nURIs: https://Pi-Apps-Coders.github.io/box86-debs/debian\nSuites: ./\nSigned-By: /etc/apt/keyrings/box86-archive-keyring.gpg" | tee /etc/apt/sources.list.d/box86.sources >/dev/null; \
61+
wget -qO- "https://pi-apps-coders.github.io/box64-debs/KEY.gpg" | gpg --dearmor -o /etc/apt/keyrings/box64-archive-keyring.gpg; \
62+
printf "Types: deb\nURIs: https://Pi-Apps-Coders.github.io/box64-debs/debian\nSuites: ./\nSigned-By: /etc/apt/keyrings/box64-archive-keyring.gpg" | tee /etc/apt/sources.list.d/box64.sources >/dev/null; \
63+
apt-get update; \
64+
apt-get install -o APT::Keep-Downloaded-Packages="false" -y \
65+
box86-generic-arm:armhf box64-generic-arm; \
66+
;; \
67+
esac; \
68+
\
69+
# Temp fix if libssl1.1 needed
70+
case "${TARGETARCH}" in \
71+
amd64) wget -qO libssl1.1.deb https://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb;; \
72+
arm64) wget -qO libssl1.1.deb https://ports.ubuntu.com/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_arm64.deb;; \
73+
esac; \
74+
apt-get install -y ./libssl1.1.deb; \
75+
rm libssl1.1.deb; \
76+
\
77+
# Install AMP instance manager
78+
case "${TARGETARCH}" in \
79+
amd64) wget -q https://cdn-repo.c7rs.com/ampinstmgr-latest.tgz;; \
80+
arm64) wget -q https://cdn-repo.c7rs.com/aarch64/ampinstmgr-latest.tgz;; \
81+
esac; \
82+
tar -xzf ampinstmgr-latest.tgz -C /; \
83+
rm ampinstmgr-latest.tgz; \
84+
\
85+
# Set up locales
86+
sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen; \
87+
locale-gen; \
88+
\
89+
apt-get clean; \
90+
rm -rf /var/lib/apt/lists/*
91+
92+
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
93+
94+
STOPSIGNAL SIGINT
95+
96+
COPY ./scripts/base/ampstart.sh /ampstart.sh
97+
RUN chmod +x /ampstart.sh
98+
ENTRYPOINT ["/usr/bin/tini", "-g", "--", "/ampstart.sh"]
99+
CMD []

base/ubuntu/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ RUN set -eux; \
1919
coreutils procps iproute2 iputils-ping socat jq git git-lfs gnupg tmux dbus \
2020
tini tzdata locales gosu \
2121
libssl3t64 libcurl4t64 libsqlite3-0 libzstd1 libsdl2-2.0-0 libsdl1.2debian libfontconfig1 \
22+
# Required for Proton
23+
python3 \
2224
# Required for Core Keeper
2325
xvfb xauth libxi6 \
2426
# Required for Valheim crossplay (and variously some others)

scripts/apps/redis/ampstart.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ keep_env=(
101101
CARGO_HOME="${CARGO_HOME}"
102102
)
103103
# Always keep these AMP_ env vars if set
104-
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID; do
104+
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID AMPINSTMGRVERSION; do
105105
if [[ -n "${!v-}" ]]; then keep_env+=("$v=${!v}"); fi
106106
done
107107
# Extra passthrough of env vars listed in AMP_ADDITIONAL_ENV_VARS in the Dockerfile

scripts/apps/uptime-kuma-2/ampstart.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ keep_env=(
9797
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}"
9898
)
9999
# Always keep these AMP_ env vars if set
100-
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID; do
100+
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID AMPINSTMGRVERSION; do
101101
if [[ -n "${!v-}" ]]; then keep_env+=("$v=${!v}"); fi
102102
done
103103
# Extra passthrough of env vars listed in AMP_ADDITIONAL_ENV_VARS in the Dockerfile

scripts/base/ampstart.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ keep_env=(
9494
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}"
9595
)
9696
# Always keep these AMP_ env vars if set
97-
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID; do
97+
for v in AMPHOSTPLATFORM AMP_CONTAINER AMP_CONTAINER_HOST_NETWORK AMPMEMORYLIMIT AMPSWAPLIMIT AMPCONTAINERCPUS AMP_INSTANCE_ID AMPINSTMGRVERSION; do
9898
if [[ -n "${!v-}" ]]; then keep_env+=("$v=${!v}"); fi
9999
done
100100
# Extra passthrough of env vars listed in AMP_ADDITIONAL_ENV_VARS in the Dockerfile

0 commit comments

Comments
 (0)