5 changed files with 283 additions and 1 deletions
@ -0,0 +1,104 @@ |
|||||
|
# |
||||
|
# LinuxGSM Base Dockerfile |
||||
|
# |
||||
|
# https://github.com/GameServerManagers/docker-linuxgsm |
||||
|
# |
||||
|
|
||||
|
FROM gameservermanagers/steamcmd:ubuntu-18.04 |
||||
|
|
||||
|
LABEL maintainer="LinuxGSM <me@danielgibbs.co.uk>" |
||||
|
|
||||
|
ENV DEBIAN_FRONTEND noninteractive |
||||
|
ENV TERM=xterm |
||||
|
ENV LGSM_GITHUBUSER=GameServerManagers |
||||
|
ENV LGSM_GITHUBREPO=LinuxGSM |
||||
|
ENV LGSM_GITHUBBRANCH=develop |
||||
|
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 \ |
||||
|
&& apt-get update \ |
||||
|
&& apt-get install -y \ |
||||
|
cron \ |
||||
|
bc \ |
||||
|
binutils \ |
||||
|
bsdmainutils \ |
||||
|
bzip2 \ |
||||
|
ca-certificates \ |
||||
|
cpio \ |
||||
|
curl \ |
||||
|
distro-info \ |
||||
|
file \ |
||||
|
git \ |
||||
|
gzip \ |
||||
|
hostname \ |
||||
|
jq \ |
||||
|
lib32gcc-s1 \ |
||||
|
lib32stdc++6 \ |
||||
|
netcat \ |
||||
|
python3 \ |
||||
|
sudo \ |
||||
|
tar \ |
||||
|
tini \ |
||||
|
tmux \ |
||||
|
unzip \ |
||||
|
util-linux \ |
||||
|
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 ****" \ |
||||
|
&& curl -sL https://deb.nodesource.com/setup_16.x | bash - \ |
||||
|
&& apt-get update \ |
||||
|
&& 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/* |
||||
|
|
||||
|
# Install GameDig https://docs.linuxgsm.com/requirements/gamedig |
||||
|
RUN echo "**** Install GameDig ****" \ |
||||
|
&& npm install -g gamedig |
||||
|
|
||||
|
WORKDIR /linuxgsm |
||||
|
|
||||
|
## Download linuxgsm.sh |
||||
|
RUN echo "**** Download linuxgsm.sh ****" \ |
||||
|
&& set -ex \ |
||||
|
&& mkdir -p /linuxgsm/lgsm \ |
||||
|
&& wget -O 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/functions \ |
||||
|
&& git checkout ${LGSM_GITHUBBRANCH} \ |
||||
|
&& mkdir -p /linuxgsm/lgsm/functions \ |
||||
|
&& mv lgsm/functions/* /linuxgsm/lgsm/functions \ |
||||
|
&& chmod +x /linuxgsm/lgsm/functions/* \ |
||||
|
&& rm -rf /linuxgsm/LinuxGSM |
||||
|
|
||||
|
# Add LinuxGSM cronjobs |
||||
|
RUN echo "**** Create Cronjobs ****" |
||||
|
RUN (crontab -l 2>/dev/null; echo "*/1 * * * * /linuxgsm/*server monitor > /dev/null 2>&1") | crontab - |
||||
|
RUN (crontab -l 2>/dev/null; echo "*/30 * * * * /linuxgsm/*server update > /dev/null 2>&1") | crontab - |
||||
|
|
||||
|
RUN rm -f /linuxgsm/entrypoint.sh |
||||
|
COPY entrypoint.sh /linuxgsm/entrypoint.sh |
||||
|
RUN date > /time.txt |
@ -0,0 +1,104 @@ |
|||||
|
# |
||||
|
# LinuxGSM Base Dockerfile |
||||
|
# |
||||
|
# https://github.com/GameServerManagers/docker-linuxgsm |
||||
|
# |
||||
|
|
||||
|
FROM gameservermanagers/steamcmd:ubuntu-20.04 |
||||
|
|
||||
|
LABEL maintainer="LinuxGSM <me@danielgibbs.co.uk>" |
||||
|
|
||||
|
ENV DEBIAN_FRONTEND noninteractive |
||||
|
ENV TERM=xterm |
||||
|
ENV LGSM_GITHUBUSER=GameServerManagers |
||||
|
ENV LGSM_GITHUBREPO=LinuxGSM |
||||
|
ENV LGSM_GITHUBBRANCH=develop |
||||
|
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 \ |
||||
|
&& apt-get update \ |
||||
|
&& apt-get install -y \ |
||||
|
cron \ |
||||
|
bc \ |
||||
|
binutils \ |
||||
|
bsdmainutils \ |
||||
|
bzip2 \ |
||||
|
ca-certificates \ |
||||
|
cpio \ |
||||
|
curl \ |
||||
|
distro-info \ |
||||
|
file \ |
||||
|
git \ |
||||
|
gzip \ |
||||
|
hostname \ |
||||
|
jq \ |
||||
|
lib32gcc-s1 \ |
||||
|
lib32stdc++6 \ |
||||
|
netcat \ |
||||
|
python3 \ |
||||
|
sudo \ |
||||
|
tar \ |
||||
|
tini \ |
||||
|
tmux \ |
||||
|
unzip \ |
||||
|
util-linux \ |
||||
|
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 ****" \ |
||||
|
&& curl -sL https://deb.nodesource.com/setup_16.x | bash - \ |
||||
|
&& apt-get update \ |
||||
|
&& 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/* |
||||
|
|
||||
|
# Install GameDig https://docs.linuxgsm.com/requirements/gamedig |
||||
|
RUN echo "**** Install GameDig ****" \ |
||||
|
&& npm install -g gamedig |
||||
|
|
||||
|
WORKDIR /linuxgsm |
||||
|
|
||||
|
## Download linuxgsm.sh |
||||
|
RUN echo "**** Download linuxgsm.sh ****" \ |
||||
|
&& set -ex \ |
||||
|
&& mkdir -p /linuxgsm/lgsm \ |
||||
|
&& wget -O 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/functions \ |
||||
|
&& git checkout ${LGSM_GITHUBBRANCH} \ |
||||
|
&& mkdir -p /linuxgsm/lgsm/functions \ |
||||
|
&& mv lgsm/functions/* /linuxgsm/lgsm/functions \ |
||||
|
&& chmod +x /linuxgsm/lgsm/functions/* \ |
||||
|
&& rm -rf /linuxgsm/LinuxGSM |
||||
|
|
||||
|
# Add LinuxGSM cronjobs |
||||
|
RUN echo "**** Create Cronjobs ****" |
||||
|
RUN (crontab -l 2>/dev/null; echo "*/1 * * * * /linuxgsm/*server monitor > /dev/null 2>&1") | crontab - |
||||
|
RUN (crontab -l 2>/dev/null; echo "*/30 * * * * /linuxgsm/*server update > /dev/null 2>&1") | crontab - |
||||
|
|
||||
|
RUN rm -f /linuxgsm/entrypoint.sh |
||||
|
COPY entrypoint.sh /linuxgsm/entrypoint.sh |
||||
|
RUN date > /time.txt |
Loading…
Reference in new issue