-
Notifications
You must be signed in to change notification settings - Fork 2
/
linux.Dockerfile
82 lines (54 loc) · 2.43 KB
/
linux.Dockerfile
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
# escape=`
FROM debian:bullseye-slim as q2pro-builder
RUN apt-get update && apt-get install -y `
build-essential libsdl2-dev libopenal-dev libpng-dev libjpeg-dev zlib1g-dev mesa-common-dev libcurl4-gnutls-dev
COPY sources/q2pro /q2pro
COPY sources/.config /q2pro
WORKDIR /q2pro
RUN make clean; make strip
#=======================================================================`
FROM lacledeslan/steamcmd:linux as q2-downloader
ARG contentServer=content.lacledeslan.net
RUN echo "\nDownloading installer from $contentServer" &&`
mkdir --parents /tmp &&`
curl -sSL "http://content.lacledeslan.net/fastDownloads/_installers/quake2-3.20-glibc-i386-full-linux2.0.tar.bz2" -o /tmp/quake2.tar.bz2 &&`
echo "Decompressing files" &&`
cd /tmp &&`
tar -xvjf /tmp/quake2.tar.bz2 --directory /output;
#=======================================================================`
FROM debian:bullseye-slim
ARG BUILDNODE=unspecified
ARG SOURCE_COMMIT=unspecified
HEALTHCHECK NONE
EXPOSE 27910/udp
RUN dpkg --add-architecture i386 &&`
apt-get update && apt-get install -y `
glib2.0 lib32gcc-s1 locales locales-all tmux zlib1g:i386 zlib1g &&`
apt-get clean &&`
rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*;
ENV LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8
LABEL maintainer="Laclede's LAN <contact @lacledeslan.com>" `
com.lacledeslan.build-node=$BUILDNODE `
org.label-schema.schema-version="1.0" `
org.label-schema.url="https://github.com/LacledesLAN/README.1ST" `
org.label-schema.vcs-ref=$SOURCE_COMMIT `
org.label-schema.vendor="Laclede's LAN" `
org.label-schema.description="Quake2 Dedicated Server in Docker" `
org.label-schema.vcs-url="https://github.com/LacledesLAN/gamesvr-quake2"
# Set up Enviornment
RUN useradd --home /app --gid root --system Quake2 &&`
mkdir -p /app/ll-tests &&`
chown Quake2:root -R /app;
# `RUN true` lines are work around for https://github.com/moby/moby/issues/36573
COPY --chown=Quake2:root --from=q2-downloader /output /app
RUN true
COPY --chown=Quake2:root --from=q2pro-builder /q2pro/q2proded /app/q2pro_server_x64
RUN true
COPY --chown=Quake2:root ./dist/linux/ll-tests /app/ll-tests
RUN chmod +x /app/ll-tests/*.sh && chmod +x /app/q2pro_server_x64 && chmod +x /app/quake2 &&`
echo "/app" > /app/quake2.conf;
COPY --chown=Quake2:root ./dist/app /app/
USER Quake2
WORKDIR /app
CMD ["/bin/bash"]
ONBUILD USER root