Browse Source

add multiple ubuntu images

pull/5/head
Daniel Gibbs 2 years ago
parent
commit
f960864abd
  1. 65
      .github/workflows/docker-publish.yml
  2. 104
      Dockerfile.ubuntu-1804
  3. 104
      Dockerfile.ubuntu-2004
  4. 0
      Dockerfile.ubuntu-2204
  5. 11
      README.md

65
.github/workflows/docker-publish.yml

@ -7,7 +7,7 @@ on:
- cron: "0 23 * * *"
jobs:
docker:
ubuntu-2204:
runs-on: ubuntu-latest
steps:
- name: Checkout
@ -31,6 +31,7 @@ jobs:
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-2204
platforms: linux/amd64
push: true
tags: |
@ -38,3 +39,65 @@ jobs:
gameservermanagers/linuxgsm:ubuntu-22.04
ghcr.io/gameservermanagers/linuxgsm:latest
ghcr.io/gameservermanagers/linuxgsm:ubuntu-22.04
ubuntu-2004:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Login to DockerHub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 20.04)
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-2004
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-20.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-20.04
ubuntu-1804:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Login to DockerHub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 18.04)
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.ubuntu-1804
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-18.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-18.04

104
Dockerfile.ubuntu-1804

@ -0,0 +1,104 @@
#
# LinuxGSM Base Dockerfile
#
# https://github.com/GameServerManagers/docker-linuxgsm
#
FROM gameservermanagers/steamcmd:ubuntu-18.04
LABEL maintainer="LinuxGSM <[email protected]>"
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

104
Dockerfile.ubuntu-2004

@ -0,0 +1,104 @@
#
# LinuxGSM Base Dockerfile
#
# https://github.com/GameServerManagers/docker-linuxgsm
#
FROM gameservermanagers/steamcmd:ubuntu-20.04
LABEL maintainer="LinuxGSM <[email protected]>"
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
Dockerfile → Dockerfile.ubuntu-2204

11
README.md

@ -8,3 +8,14 @@
<a href="https://www.codacy.com/gh/GameServerManagers/docker-linuxgsm/dashboard"><img src="https://img.shields.io/codacy/grade/42d400dcdd714ae080d77fcb40d00f1c?style=flat-square&logo=codacy&logoColor=white" alt="Codacy grade"></a>
<a href="https://developer.valvesoftware.com/wiki/SteamCMD"><img src="https://img.shields.io/badge/SteamCMD-000000?style=flat-square&amp;logo=Steam&amp;logoColor=white" alt="SteamCMD"></a>
<a href="https://github.com/GameServerManagers/docker-linuxgsm/blob/main/LICENSE"><img src="https://img.shields.io/github/license/gameservermanagers/docker-linuxgsm?style=flat-square" alt="MIT License"></a></p>
## About
LinuxGSM is a command-line tool for quick, simple deployment and management of Linux dedicated game servers. This container image builds daily and is available on [Docker Hub](https://hub.docker.com/r/gameservermanagers/linuxgsm) as well as [GitHub Container Registry](https://github.com/GameServerManagers/docker-linuxgsm/pkgs/container/linuxgsm).
## Tags
- `latest`, `ubuntu` - Latest Ubuntu LTS release
- `ubuntu-22.04` - Ubuntu 22.04 LTS 'Jammy Jackalope'
- `ubuntu-20.04` - Ubuntu 20.04 LTS 'Focal Fossa'
- `ubuntu-18.04` - Ubuntu 18.04 LTS 'Bionic Beaver'

Loading…
Cancel
Save