mirror of
https://github.com/ENSL/ensl_hlds.git
synced 2024-12-13 05:51:27 +00:00
modified Dockerfile to use multi-stage building for best practice with layering
This commit is contained in:
parent
1a29555c96
commit
94ffe468f8
1 changed files with 43 additions and 40 deletions
75
Dockerfile
75
Dockerfile
|
@ -1,17 +1,27 @@
|
|||
FROM ubuntu
|
||||
FROM ubuntu AS Ubuntu_SteamCMD
|
||||
|
||||
# Get Package Dependencies, Accept ToS with Steam Dependency, clear appt cache
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update && \
|
||||
apt-get -y install wget lib32gcc1 lib32stdc++6 libcurl3:i386 unzip liblz4-tool gcc-multilib g++-multilib
|
||||
|
||||
# Accept ToS
|
||||
RUN printf "\n2\n"|apt-get install -y steamcmd
|
||||
apt-get -y install wget \
|
||||
lib32gcc1 \
|
||||
lib32stdc++6 \
|
||||
libstdc++6:i386 \
|
||||
libcurl3:i386 \
|
||||
unzip \
|
||||
liblz4-tool \
|
||||
gcc-multilib \
|
||||
g++-multilib && \
|
||||
printf "\n2\n"|apt-get install -y steamcmd && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN useradd -m steam
|
||||
|
||||
USER steam
|
||||
WORKDIR /home/steam
|
||||
|
||||
FROM Ubuntu_SteamCMD AS SteamCMD_HLDS
|
||||
|
||||
RUN mkdir -p /home/steam/hlds/steamapps/
|
||||
|
||||
# Run app validate several times workaround HLDS bug
|
||||
|
@ -21,61 +31,54 @@ RUN /usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +ap
|
|||
COPY --chown=steam files/*.acf /home/steam/hlds/steamapps/
|
||||
|
||||
# HLDS bug workaround. Geez.
|
||||
RUN printf "quit\nquit\n"|/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true
|
||||
RUN printf "quit\nquit\n"|/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true
|
||||
RUN printf "quit\nquit\nquit\nquit\nquit\n" |/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true
|
||||
RUN printf "quit\nquit\n"|/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true && \
|
||||
printf "quit\nquit\n"|/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true && \
|
||||
printf "quit\nquit\nquit\nquit\nquit\n" |/usr/games/steamcmd +login anonymous +force_install_dir /home/steam/hlds +app_set_config 90 mod valve +app_update 90 validate ||true
|
||||
|
||||
# HLDS bug workaround. Yay.
|
||||
RUN mkdir -p ~/.steam/sdk32 && ln -s ~/.steam/steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
|
||||
|
||||
COPY scripts/*.sh /home/steam/hlds/
|
||||
|
||||
FROM SteamCMD_HLDS AS HLDS_NS
|
||||
|
||||
WORKDIR /home/steam/hlds
|
||||
COPY --chown=steam files/ns.sha /home/steam/hlds
|
||||
|
||||
# NS bug workaround. Since NS links to a GCC which is not included in the steam-provided libstdc++:i386
|
||||
RUN mv libstdc++* /home/steam/
|
||||
|
||||
RUN mv /home/steam/hlds/libstdc++* /home/steam/ && \
|
||||
# Install NS
|
||||
RUN wget 'https://github.com/ENSL/NS/releases/download/v3.2.2/ns_v322_full.zip'
|
||||
COPY --chown=steam files/ns.sha /home/steam/hlds
|
||||
# RUN sha256sum -c ns.sha
|
||||
RUN unzip ns_v322_full.zip
|
||||
wget 'https://github.com/ENSL/NS/releases/download/v3.2.2/ns_v322_full.zip' && \
|
||||
unzip ns_v322_full.zip && \
|
||||
cp /home/steam/hlds/ns/liblist.gam /home/steam/hlds/ns/liblist.bak
|
||||
|
||||
FROM HLDS_NS AS HLDS_ENSL
|
||||
|
||||
WORKDIR /home/steam/hlds/ns
|
||||
|
||||
# NS workarounds
|
||||
RUN echo 70 > steam_appid.txt
|
||||
# RUN mv dlls/ns_i386.so dlls/ns.so || echo
|
||||
|
||||
# ENSL package
|
||||
RUN cp liblist.gam liblist.bak
|
||||
# RUN wget https://github.com/ENSL/ensl-plugin/releases/download/v1.4/ensl_srvpkg-v1.4.zip -O srv.zip
|
||||
RUN wget https://github.com/ENSL/ensl-plugin/releases/download/1.4-extra/ENSL_SrvPkg-1.4-extra.zip -O srv.zip
|
||||
RUN unzip -o srv.zip
|
||||
|
||||
RUN wget https://github.com/ENSL/ensl-plugin/releases/download/1.4-extra/ENSL_SrvPkg-1.4-extra.zip -O srv.zip && \
|
||||
unzip -o srv.zip && \
|
||||
# Use seperate server.cfg because autoexec.cfg is unreliable
|
||||
RUN touch /home/steam/hlds/ns/server.cfg
|
||||
touch /home/steam/hlds/ns/server.cfg
|
||||
|
||||
# Copy own configs including bans
|
||||
ADD overlay /home/steam/hlds/ns/
|
||||
COPY scripts/*.sh /home/steam/hlds/
|
||||
|
||||
USER root
|
||||
RUN chown -R steam /home/steam/hlds
|
||||
RUN apt-get install -y libstdc++6:i386
|
||||
USER steam
|
||||
#USER root
|
||||
#RUN chown -R steam /home/steam/hlds
|
||||
#USER steam
|
||||
|
||||
WORKDIR /home/steam/hlds
|
||||
|
||||
# VAC Service
|
||||
EXPOSE 26900
|
||||
|
||||
EXPOSE 26900 \
|
||||
# HLDS
|
||||
EXPOSE 27016
|
||||
|
||||
27016 \
|
||||
# HLDS RCON
|
||||
EXPOSE 27016/udp
|
||||
|
||||
27016/udp \
|
||||
# HLTV
|
||||
EXPOSE 27020
|
||||
27020
|
||||
|
||||
# ENTRYPOINT ["/bin/bash"]
|
||||
ENTRYPOINT ["/home/steam/hlds/entry.sh"]
|
||||
|
|
Loading…
Reference in a new issue