forked from r15ch13/arkcluster
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
105 lines (90 loc) · 3.08 KB
/
Copy pathDockerfile
File metadata and controls
105 lines (90 loc) · 3.08 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
# https://github.com/phusion/baseimage-docker
FROM phusion/baseimage:latest-amd64
LABEL org.label-schema.maintainer="Richard Kuhnt <[email protected]>" \
org.label-schema.description="Base ARK Cluster Image" \
org.label-schema.url="https://github.com/r15ch13/arkcluster" \
org.label-schema.vcs-url="https://github.com/r15ch13/arkcluster" \
org.label-schema.schema-version="1.0.0-rc1"
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]
# Install dependencies and clean up
RUN apt-get update \
&& apt-get upgrade -y -o Dpkg::Options::="--force-confold" \
&& apt-get install -y --no-install-recommends \
bzip2 \
curl \
git \
lib32gcc1 \
libc6-i386 \
lsof \
perl-modules \
tzdata \
davfs2 \
fuse \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Create required directories
RUN mkdir -p /ark \
mkdir -p /ark/log \
mkdir -p /ark/backup \
mkdir -p /ark/staging \
mkdir -p /ark/default \
mkdir -p /cluster
# Expose environment variables
ENV USER_ID=1000 \
GROUP_ID=1000 \
KILL_PROCESS_TIMEOUT=300 \
KILL_ALL_PROCESSES_TIMEOUT=300
# Add steam user
RUN addgroup --gid $GROUP_ID steam \
&& adduser --system --uid $USER_ID --gid $GROUP_ID --shell /bin/bash steam \
&& usermod -a -G docker_env steam
# Install ark-server-tools
RUN git clone --single-branch --depth 1 https://github.com/FezVrasta/ark-server-tools.git /home/steam/ark-server-tools \
&& cd /home/steam/ark-server-tools/tools/ \
&& ./install.sh steam --bindir=/usr/bin
# Install steamdcmd
RUN mkdir -p /home/steam/steamcmd \
&& cd /home/steam/steamcmd \
&& curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
LABEL org.label-schema.maintainer="Richard Kuhnt <[email protected]>" \
org.label-schema.description="ARK Cluster Image" \
org.label-schema.url="https://github.com/r15ch13/arkcluster" \
org.label-schema.vcs-url="https://github.com/r15ch13/arkcluster" \
org.label-schema.schema-version="1.0.0-rc1"
# Expose environment variables
ENV CRON_AUTO_UPDATE="0 */3 * * *" \
CRON_AUTO_BACKUP="0 */1 * * *" \
UPDATEONSTART=1 \
UPDATEMODS=1 \
BACKUPONSTART=1 \
BACKUPONSTOP=1 \
WARNONSTOP=1 \
USER_ID=1000 \
GROUP_ID=1000 \
TZ=UTC \
MAX_BACKUP_SIZE=500 \
SERVERMAP="TheIsland" \
SESSION_NAME="ARK Docker" \
MAX_PLAYERS=15 \
RCON_ENABLE="True" \
RCON_PORT=32330 \
GAME_PORT=7778 \
QUERY_PORT=27015 \
RAW_SOCKETS="False" \
SERVER_PASSWORD="" \
ADMIN_PASSWORD="" \
SPECTATOR_PASSWORD="" \
MODS="" \
CLUSTER_ID="keepmesecret" \
MULTIHOME="localhost" \
KILL_PROCESS_TIMEOUT=300 \
KILL_ALL_PROCESSES_TIMEOUT=300
RUN mkdir -p /etc/service/arkcluster
COPY run.sh /etc/service/arkcluster/run
RUN chmod +x /etc/service/arkcluster/run
COPY crontab /home/steam/crontab
COPY arkmanager.cfg /etc/arkmanager/arkmanager.cfg
COPY arkmanager-user.cfg /home/steam/arkmanager-user.cfg
VOLUME /ark /cluster
WORKDIR /ark