-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathDockerfile
More file actions
131 lines (95 loc) · 4.28 KB
/
Dockerfile
File metadata and controls
131 lines (95 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
FROM registry.gitlab.steamos.cloud/steamrt/sniper/platform:latest-container-runtime-depot AS build
# Install .NET SDK 8.0
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget \
ca-certificates \
&& wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh --channel 8.0 --install-dir /usr/share/dotnet \
&& rm -f dotnet-install.sh \
&& rm -rf /var/lib/apt/lists/*
ENV PATH="/usr/share/dotnet:${PATH}"
ENV DOTNET_ROOT="/usr/share/dotnet"
WORKDIR /mod
COPY src/*.csproj .
RUN dotnet restore
COPY . .
ARG RELEASE_VERSION
ENV RELEASE_VERSION ${RELEASE_VERSION}
RUN sed -i 's/__RELEASE_VERSION__/'${RELEASE_VERSION}'/' src/FiveStackPlugin.cs
RUN dotnet build -c Release -o release
RUN rm /mod/release/CounterStrikeSharp.API.dll
COPY src/lang /mod/release/lang
# New stage for creating the zip file
FROM debian:bookworm-slim AS zip-creator
WORKDIR /zip-content
COPY --from=build /mod/release ./addons/counterstrikesharp/plugins/FiveStack/./
RUN apt-get update && \
apt-get install -y --no-install-recommends zip && \
zip -r /mod-release.zip . && \
rm -rf /var/lib/apt/lists/*
FROM registry.gitlab.steamos.cloud/steamrt/sniper/platform:latest-container-runtime-depot
ENV DATA_DIR="/serverdata"
ENV STEAMCMD_DIR="${DATA_DIR}/steamcmd"
ENV BASE_SERVER_DIR="${DATA_DIR}/serverfiles"
ENV INSTANCE_SERVER_DIR="/opt/instance"
ENV LD_LIBRARY_PATH="/opt/instance/game/bin/linuxsteamrt64:/opt/instance/bin:"
ENV AUTOLOAD_PLUGINS=true
ENV PLUGINS_DIR="/opt/custom-plugins"
ENV INSTALL_5STACK_PLUGIN=true
ENV GAME_ID="730"
ENV GAME_PARAMS=""
ENV GAME_PORT=27015
ENV VALIDATE=false
ENV USER=steam
ENV STEAM_USER="anonymous"
ENV STEAM_PASSWORD=""
ENV SERVER_ID=""
ENV DEFAULT_MAP="de_inferno"
ENV STEAM_RELAY="false"
ENV SERVER_TYPE="Ranked"
ENV METAMOD_URL=https://github.com/alliedmodders/metamod-source/releases/download/2.0.0.1395/mmsource-2.0.0-git1395-linux.tar.gz
ENV COUNTER_STRIKE_SHARP_URL=https://github.com/roflmuffin/CounterStrikeSharp/releases/download/v1.0.365/counterstrikesharp-with-runtime-linux-1.0.365.zip
ENV METAMOD_CSGO_URL=https://mms.alliedmods.net/mmsdrop/1.12/mmsource-1.12.0-git1219-linux.tar.gz
ENV SOURCEMOD_CSGO_URL=https://sm.alliedmods.net/smdrop/1.13/sourcemod-1.13.0-git7297-linux.tar.gz
ENV NO_LOBBY_RESERVATION_URL=https://github.com/nuxencs/NoLobbyReservation/releases/download/v0.0.1/NoLobbyReservation.zip
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget locales procps jq ca-certificates curl unzip rsync \
lib32gcc-s1 lib32stdc++6 lib32z1 lsof libicu-dev && \
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen && \
rm -rf /var/lib/apt/lists/*
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
RUN mkdir -p $DATA_DIR $STEAMCMD_DIR $BASE_SERVER_DIR $INSTANCE_SERVER_DIR && \
useradd -d $DATA_DIR -s /bin/bash $USER && \
ulimit -n 2048
RUN mkdir -p /opt/metamod /opt/counterstrikesharp && \
wget -q $METAMOD_URL -O /tmp/metamod.tar.gz && \
tar -xz -C /opt/metamod -f /tmp/metamod.tar.gz && \
rm /tmp/metamod.tar.gz && \
wget -q $COUNTER_STRIKE_SHARP_URL -O /tmp/counterstrikesharp.zip && \
unzip -q /tmp/counterstrikesharp.zip -d /opt/counterstrikesharp && \
rm /tmp/counterstrikesharp.zip
RUN mkdir -p /opt/csgo-metamod /opt/csgo-sourcemod /opt/csgo-no-lobby-reservation && \
wget -q $METAMOD_CSGO_URL -O /tmp/metamod-csgo.tar.gz && \
tar -xz -C /opt/csgo-metamod -f /tmp/metamod-csgo.tar.gz && \
rm /tmp/metamod-csgo.tar.gz && \
wget -q $SOURCEMOD_CSGO_URL -O /tmp/sourcemod-csgo.tar.gz && \
tar -xz -C /opt/csgo-sourcemod -f /tmp/sourcemod-csgo.tar.gz && \
rm /tmp/sourcemod-csgo.tar.gz && \
wget -q $NO_LOBBY_RESERVATION_URL -O /tmp/no-lobby-reservation.zip && \
unzip -q /tmp/no-lobby-reservation.zip -d /opt/csgo-no-lobby-reservation && \
rm /tmp/no-lobby-reservation.zip
COPY /cfg /opt/server-cfg
COPY /scripts /opt/scripts
COPY --from=build /mod/release /opt/mod
RUN mv /opt/metamod/addons /opt/addons && \
cp -R /opt/counterstrikesharp/addons/metamod /opt/addons && \
cp -R /opt/counterstrikesharp/addons/counterstrikesharp /opt/addons && \
mkdir -p /opt/addons/counterstrikesharp/plugins && \
rm -rf /opt/metamod /opt/counterstrikesharp
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/setup.sh && /opt/scripts/server.sh"]