#9 resolving
This commit is contained in:
parent
d73cc30676
commit
176f6c5411
@ -1,6 +1,73 @@
|
||||
ARG SUFFIX=""
|
||||
FROM debian:buster-slim as lgsm
|
||||
|
||||
FROM jusito/docker-ttt:lgsm_debian${SUFFIX}
|
||||
# Const \\ Overwrite Env \\ Configs possible \\ Configs needed
|
||||
# C.UTF-8 -> en_US.UTF-8
|
||||
ENV STEAM_PATH="/home/steam" \
|
||||
SERVER_PATH="/home/steam/serverfiles" \
|
||||
STEAM_CMD="/home/steam/.steam/steamcmd" \
|
||||
GROUP_ID=10000 \
|
||||
USER_ID=10000 \
|
||||
DOCKER_USER=steam \
|
||||
SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \
|
||||
SUPERCRONIC=supercronic-linux-amd64 \
|
||||
SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \
|
||||
\
|
||||
\
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
LANG=C.UTF-8 \
|
||||
TERM=xterm \
|
||||
\
|
||||
\
|
||||
DEBUGGING=false \
|
||||
CRON_MONITOR="*/5 * * * *" \
|
||||
CRON_UPDATE="*/30 * * * *" \
|
||||
CRON_FORCE_UPDATE="0 10 * * 0" \
|
||||
CRON_LOG_ROTATE="0 0 * * 0" \
|
||||
\
|
||||
\
|
||||
SERVER_EXECUTABLE="" \
|
||||
SERVER_GAME="" \
|
||||
TZ="Europe/Berlin"
|
||||
#https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
ENTRYPOINT ["./home/entrypoint.sh"]
|
||||
|
||||
#WORKDIR "$STEAM_PATH"
|
||||
|
||||
COPY ["lgsm/entrypoint.sh", "lgsm/initCron.sh", "lgsm/createAlias.sh", "/home/"]
|
||||
|
||||
# procps needed for ps command
|
||||
# iproute2 needed because of "-slim"
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update -y && \
|
||||
apt-get install -y mailutils postfix curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates \
|
||||
binutils bc jq tmux lib32gcc1 libstdc++6 lib32stdc++6 libtinfo5:i386 netcat libsdl2-2.0-0:i386 \
|
||||
procps iproute2 && \
|
||||
\
|
||||
groupadd -g $GROUP_ID $DOCKER_USER && \
|
||||
useradd -d "$STEAM_PATH" -g $GROUP_ID -u $USER_ID -m $DOCKER_USER && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" /home/entrypoint.sh && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" /home/initCron.sh && \
|
||||
mkdir -p "$SERVER_PATH" && \
|
||||
chown -R "$DOCKER_USER:$DOCKER_USER" "$STEAM_PATH" && \
|
||||
chmod a=rx /home/entrypoint.sh && \
|
||||
chmod a=rx /home/initCron.sh && \
|
||||
chmod a=rx /home/createAlias.sh && \
|
||||
\
|
||||
ulimit -n 2048 && \
|
||||
\
|
||||
wget -O "$STEAM_PATH/linuxgsm.sh" "https://linuxgsm.sh" && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" "$STEAM_PATH/linuxgsm.sh" && \
|
||||
chmod +x "$STEAM_PATH/linuxgsm.sh" && \
|
||||
\
|
||||
\
|
||||
wget -O "${SUPERCRONIC}" "$SUPERCRONIC_URL" && \
|
||||
echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \
|
||||
chmod +x "$SUPERCRONIC" && \
|
||||
mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \
|
||||
ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
|
||||
|
||||
FROM lgsm as gmod
|
||||
|
||||
# Const \\ Overwrite Env \\ Configs optional
|
||||
ENV CSS_PATH="/home/steam/addons/css" \
|
||||
@ -74,7 +141,7 @@ ENV CSS_PATH="/home/steam/addons/css" \
|
||||
USE_MY_REPLACER_CONFIG=false
|
||||
|
||||
|
||||
COPY ["prepareServer.sh", "initConfig.sh", "forceWorkshopDownload.sh", "installAndMountAddons.sh", "common.cfg", "/home/"]
|
||||
COPY ["gmod/prepareServer.sh", "gmod/initConfig.sh", "gmod/forceWorkshopDownload.sh", "gmod/installAndMountAddons.sh", "gmod/common.cfg", "/home/"]
|
||||
|
||||
RUN chown "$DOCKER_USER:$DOCKER_USER" /home/prepareServer.sh && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" /home/initConfig.sh && \
|
||||
@ -100,3 +167,13 @@ RUN chown "$DOCKER_USER:$DOCKER_USER" /home/prepareServer.sh && \
|
||||
/home/createAlias.sh "update" '/home/steam/gmodserver update' && \
|
||||
/home/createAlias.sh "update-lgsm" '/home/steam/gmodserver update-lgsm' && \
|
||||
/home/createAlias.sh "validate" '/home/steam/gmodserver validate'
|
||||
|
||||
FROM gmod as TTT
|
||||
|
||||
ENV SERVER_GAMEMODE="terrortown"
|
||||
|
||||
COPY "TTT/server.cfg.default" "/home/server.cfg.default"
|
||||
|
||||
USER "$USER_ID:$GROUP_ID"
|
||||
|
||||
VOLUME "$SERVER_PATH"
|
21
docker-compose.yml
Normal file
21
docker-compose.yml
Normal file
@ -0,0 +1,21 @@
|
||||
volumes:
|
||||
TTTDev:
|
||||
|
||||
services:
|
||||
ttt:
|
||||
build: .
|
||||
ports:
|
||||
- 27015:27015/tcp
|
||||
- 27015:27015/udp
|
||||
environment:
|
||||
INSTALL_CSS: "true"
|
||||
SERVER_DEFAULT_MAP: ttt_lttp_kakariko_a4
|
||||
SERVER_PORT: 27015
|
||||
SERVER_NAME: "Example Name"
|
||||
SERVER_PASSWORD: securePassword
|
||||
SERVER_VOICE_ENABLE: 0
|
||||
SERVER_MAX_PLAYERS: 20
|
||||
SERVER_RCON_PASSWORD: securePassword
|
||||
WORKSHOP_COLLECTION_ID: 1895900191
|
||||
volumes:
|
||||
- TTTDev:/home/steam/serverfiles
|
14
hooks/pre_push
Normal file
14
hooks/pre_push
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
imageSuffix=""
|
||||
if [ "$SOURCE_BRANCH" != "master" ]; then
|
||||
imageSuffix="-$(echo "$SOURCE_BRANCH" | sed 's/\//-/g')"
|
||||
fi
|
||||
|
||||
echo "current directory:"
|
||||
echo "$(pwd)"
|
||||
ls -lA .
|
||||
bash test/testBuild.sh "$imageSuffix" --skip-ttt --push
|
@ -1,69 +0,0 @@
|
||||
FROM debian:buster-slim
|
||||
|
||||
# Const \\ Overwrite Env \\ Configs possible \\ Configs needed
|
||||
# C.UTF-8 -> en_US.UTF-8
|
||||
ENV STEAM_PATH="/home/steam" \
|
||||
SERVER_PATH="/home/steam/serverfiles" \
|
||||
STEAM_CMD="/home/steam/.steam/steamcmd" \
|
||||
GROUP_ID=10000 \
|
||||
USER_ID=10000 \
|
||||
DOCKER_USER=steam \
|
||||
SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \
|
||||
SUPERCRONIC=supercronic-linux-amd64 \
|
||||
SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \
|
||||
\
|
||||
\
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
LANG=C.UTF-8 \
|
||||
TERM=xterm \
|
||||
\
|
||||
\
|
||||
DEBUGGING=false \
|
||||
CRON_MONITOR="*/5 * * * *" \
|
||||
CRON_UPDATE="*/30 * * * *" \
|
||||
CRON_FORCE_UPDATE="0 10 * * 0" \
|
||||
CRON_LOG_ROTATE="0 0 * * 0" \
|
||||
\
|
||||
\
|
||||
SERVER_EXECUTABLE="" \
|
||||
SERVER_GAME="" \
|
||||
TZ="Europe/Berlin"
|
||||
#https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
ENTRYPOINT ["./home/entrypoint.sh"]
|
||||
|
||||
#WORKDIR "$STEAM_PATH"
|
||||
|
||||
COPY ["entrypoint.sh", "initCron.sh", "createAlias.sh", "/home/"]
|
||||
|
||||
# procps needed for ps command
|
||||
# iproute2 needed because of "-slim"
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update -y && \
|
||||
apt-get install -y mailutils postfix curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates \
|
||||
binutils bc jq tmux lib32gcc1 libstdc++6 lib32stdc++6 libtinfo5:i386 netcat \
|
||||
procps iproute2 && \
|
||||
\
|
||||
groupadd -g $GROUP_ID $DOCKER_USER && \
|
||||
useradd -d "$STEAM_PATH" -g $GROUP_ID -u $USER_ID -m $DOCKER_USER && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" /home/entrypoint.sh && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" /home/initCron.sh && \
|
||||
mkdir -p "$SERVER_PATH" && \
|
||||
chown -R "$DOCKER_USER:$DOCKER_USER" "$STEAM_PATH" && \
|
||||
chmod a=rx /home/entrypoint.sh && \
|
||||
chmod a=rx /home/initCron.sh && \
|
||||
chmod a=rx /home/createAlias.sh && \
|
||||
\
|
||||
ulimit -n 2048 && \
|
||||
\
|
||||
wget -O "$STEAM_PATH/linuxgsm.sh" "https://linuxgsm.sh" && \
|
||||
chown "$DOCKER_USER:$DOCKER_USER" "$STEAM_PATH/linuxgsm.sh" && \
|
||||
chmod +x "$STEAM_PATH/linuxgsm.sh" && \
|
||||
\
|
||||
\
|
||||
wget -O "${SUPERCRONIC}" "$SUPERCRONIC_URL" && \
|
||||
echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \
|
||||
chmod +x "$SUPERCRONIC" && \
|
||||
mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \
|
||||
ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
|
||||
|
@ -18,7 +18,7 @@ set -e
|
||||
|
||||
# --- Install / Update ---
|
||||
cd "$STEAM_PATH"
|
||||
if [ -n "$SERVER_EXECUTABLE" ] && [ -e "${STEAM_PATH}/$SERVER_EXECUTABLE" ]; then
|
||||
if [ -n "$SERVER_EXECUTABLE" ] && [ -e "${STEAM_PATH}/$SERVER_EXECUTABLE" ] && [ -d "$STEAM_CMD" ]; then
|
||||
echo "[entrypoint.sh]updating..."
|
||||
./"$SERVER_EXECUTABLE" update-lgsm
|
||||
./"$SERVER_EXECUTABLE" update
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -o errexit
|
||||
#set -o pipefail
|
||||
set -o nounset
|
||||
|
||||
imageSuffix=""
|
||||
if [ "$SOURCE_BRANCH" != "master" ]; then
|
||||
imageSuffix="-$(echo "$SOURCE_BRANCH" | sed 's/\//-/g')"
|
||||
fi
|
||||
|
||||
#docker build -t "$DOCKER_REPO:lgsm_debian${imageSuffix}" "lgsm/"
|
||||
cd ..
|
||||
|
||||
bash test/testBuild.sh "$imageSuffix" true
|
||||
|
||||
docker push "$DOCKER_REPO:gmod_debian${imageSuffix}"
|
||||
docker push "$DOCKER_REPO:gmod_ttt_debian${imageSuffix}"
|
||||
docker push "$DOCKER_REPO:latest${imageSuffix}"
|
@ -1,7 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
readonly SUFFIX="$1"
|
||||
readonly SKIP_LGSM="$2"
|
||||
readonly BUILD_TTT="$(grep -qF -e '--skip-ttt' <<< "$@" && echo false || echo true)"
|
||||
readonly PUSH="$(grep -qF -e '--push' <<< "$@" && echo true || echo false)"
|
||||
readonly repository="${DOCKER_REPO:-jusito/docker-ttt}"
|
||||
|
||||
if [ "${DEBUGGING}" = "true" ]; then
|
||||
set -o xtrace
|
||||
@ -13,18 +15,30 @@ set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
function process() {
|
||||
tag_prefix="$1"
|
||||
target="$2"
|
||||
cache_option="$(grep -qF -e '--no-cache' <<< "$@" && echo "--no-cache" || echo "")"
|
||||
|
||||
docker rmi "$repository:$tag_prefix${SUFFIX}" || true
|
||||
docker build --target "$target" $cache_option -t "$repository:$tag_prefix${SUFFIX}" .
|
||||
if "$PUSH"; then
|
||||
docker push "$repository:$tag_prefix${SUFFIX}"
|
||||
fi
|
||||
}
|
||||
|
||||
echo "[testBuild][INFO] build"
|
||||
|
||||
if [ "$SKIP_LGSM" = true ]; then
|
||||
docker rmi "jusito/docker-ttt:lgsm_debian${SUFFIX}" || true
|
||||
docker build --no-cache -t "jusito/docker-ttt:lgsm_debian${SUFFIX}" "lgsm/"
|
||||
process "lgsm_debian" "lgsm" --no-cache
|
||||
process "gmod_debian" "gmod"
|
||||
if "$BUILD_TTT"; then
|
||||
process "gmod_ttt_debian" "TTT"
|
||||
fi
|
||||
|
||||
docker rmi "jusito/docker-ttt:gmod_debian${SUFFIX}" || true
|
||||
docker build --no-cache -t "jusito/docker-ttt:gmod_debian${SUFFIX}" "gmod/"
|
||||
docker rmi "$repository:latest${SUFFIX}" || true
|
||||
docker tag "$repository:gmod_ttt_debian${SUFFIX}" "$repository:latest${SUFFIX}"
|
||||
if "$PUSH"; then
|
||||
docker push "$repository:latest${SUFFIX}"
|
||||
fi
|
||||
|
||||
docker rmi "jusito/docker-ttt:gmod_ttt_debian${SUFFIX}" || true
|
||||
docker build --no-cache -t "jusito/docker-ttt:gmod_ttt_debian${SUFFIX}" "TTT/"
|
||||
|
||||
docker rmi "$DOCKER_REPO:latest${SUFFIX}" || true
|
||||
docker tag "$DOCKER_REPO:gmod_ttt_debian${SUFFIX}" "$DOCKER_REPO:latest${SUFFIX}"
|
||||
echo "[testBuild][INFO] build done!"
|
||||
|
Loading…
Reference in New Issue
Block a user