Skip to content

Commit

Permalink
feat: add Ubuntu 24.04
Browse files Browse the repository at this point in the history
  • Loading branch information
dgibbs64 committed May 5, 2024
1 parent 657453a commit 1406023
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 13 deletions.
9 changes: 3 additions & 6 deletions Dockerfile.ubuntu-2004
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ RUN echo "**** Install Base LinuxGSM Requirements ****" \
lib32gcc-s1 \
lib32stdc++6 \
netcat \
pigz \
python3 \
sudo \
tar \
Expand All @@ -74,12 +75,8 @@ RUN echo "**** Install Base LinuxGSM Requirements ****" \
# Install Node.js
RUN echo "**** Install Node.js ****" \
&& set -uex \
&& mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
&& NODE_MAJOR=20 \
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \
&& apt-get update \
&& apt-get install nodejs -y \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
&& sudo apt-get install -y nodejs \
&& apt-get -y autoremove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
11 changes: 4 additions & 7 deletions Dockerfile.ubuntu-2204
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ RUN echo "**** Install Base LinuxGSM Requirements ****" \
lib32gcc-s1 \
lib32stdc++6 \
netcat \
python3 \
pigz z
python3 \
sudo \
tar \
tmux \
Expand All @@ -75,12 +76,8 @@ RUN echo "**** Install Base LinuxGSM Requirements ****" \
# Install Node.js
RUN echo "**** Install Node.js ****" \
&& set -uex \
&& mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
&& NODE_MAJOR=20 \
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \
&& apt-get update \
&& apt-get install nodejs -y \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
&& sudo apt-get install -y nodejs \
&& apt-get -y autoremove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
136 changes: 136 additions & 0 deletions Dockerfile.ubuntu-2404
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
#
# LinuxGSM Base Dockerfile
#
# https://github.com/GameServerManagers/docker-linuxgsm
#

FROM gameservermanagers/steamcmd:ubuntu-24.04

LABEL maintainer="LinuxGSM <[email protected]>"
ENV DEBIAN_FRONTEND noninteractive
ENV TERM=xterm
ENV LGSM_GITHUBUSER=GameServerManagers
ENV LGSM_GITHUBREPO=LinuxGSM
ENV LGSM_GITHUBBRANCH=master
ENV LGSM_LOGDIR=/data/log
ENV LGSM_SERVERFILES=/data/serverfiles
ENV LGSM_DATADIR=/data/data
ENV LGSM_CONFIG=/data/config-lgsm
ENV LGSM_DEV=false
ENV GAMESERVER=jc2server
ENV UPDATE_CHECK=60
ENV USER=linuxgsm
ENV UID=1000
ENV GID=1000

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

## Install Base LinuxGSM Requirements
RUN echo "**** Install Base LinuxGSM Requirements ****" \
&& apt-get update \
&& apt-get install -y software-properties-common \
&& add-apt-repository multiverse \
&& add-apt-repository ppa:git-core/ppa \
&& apt-get update \
&& apt-get install -y \
bc \
binutils \
bsdmainutils \
bzip2 \
ca-certificates \
cpio \
cron \
curl \
distro-info \
file \
git \
gnupg \
gosu \
gzip \
hostname \
jq \
lib32gcc-s1 \
lib32stdc++6 \
netcat-openbsd \
pigz \
python3 \
sudo \
tar \
tmux \
unzip \
util-linux \
uuid-runtime \
wget \
xz-utils \
# Docker Extras
iproute2 \
iputils-ping \
nano \
vim \
&& apt-get -y autoremove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* \
&& rm -rf /var/tmp/*

# Install Node.js
RUN echo "**** Install Node.js ****" \
&& set -uex \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
&& sudo apt-get install -y nodejs \
&& apt-get -y autoremove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* \
&& rm -rf /var/tmp/* \
&& npm install -g npm@latest

# Install GameDig https://docs.linuxgsm.com/requirements/gamedig
RUN echo "**** Install GameDig ****" \
&& npm install -g [email protected]

WORKDIR /app

## Add linuxgsm user
RUN echo "**** Add linuxgsm user ****" \
&& mkdir /data \
# Create the user
&& groupadd --gid $GID $USER \
&& useradd --uid $UID --gid $GID -m $USER \
#
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
&& echo $USER ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USER \
&& chmod 0440 /etc/sudoers.d/$USER \
&& chown $USER:$USER /data

HEALTHCHECK --interval=1m --timeout=1m --start-period=2m --retries=1 CMD /app/entrypoint-healthcheck.sh || exit 1

## Download linuxgsm.sh
RUN echo "**** Download linuxgsm.sh ****" \
&& set -ex \
&& curl -Lo linuxgsm.sh "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_GITHUBBRANCH}/linuxgsm.sh" \
&& chmod +x linuxgsm.sh

RUN echo "**** Get LinuxGSM Modules ****" \
&& git clone --filter=blob:none --no-checkout --sparse https://github.com/GameServerManagers/LinuxGSM.git \
&& cd LinuxGSM \
&& git sparse-checkout set --cone \
&& git sparse-checkout set lgsm/modules \
&& git checkout ${LGSM_GITHUBBRANCH} \
&& mkdir -p /app/lgsm/modules \
&& mv lgsm/modules/* /app/lgsm/modules \
&& chmod +x /app/lgsm/modules/* \
&& cd ../ \
&& rm -rf LinuxGSM \
&& chown -R $USER:$USER /app

ARG CACHEBUST=1
RUN echo "$CACHEBUST"

COPY entrypoint.sh /app/entrypoint.sh
COPY entrypoint-user.sh /app/entrypoint-user.sh
COPY entrypoint-healthcheck.sh /app/entrypoint-healthcheck.sh

RUN date > /build-time.txt

ENTRYPOINT ["/bin/bash", "./entrypoint.sh"]

0 comments on commit 1406023

Please sign in to comment.