#11 : add UID & GID.
This commit is contained in:
parent
50db7b51b9
commit
142c15a438
3 changed files with 36 additions and 10 deletions
11
Dockerfile
11
Dockerfile
|
@ -27,6 +27,10 @@ ENV STEAMPORT 7778
|
||||||
ENV BACKUPONSTOP 0
|
ENV BACKUPONSTOP 0
|
||||||
# If the server warn the players before stopping
|
# If the server warn the players before stopping
|
||||||
ENV WARNONSTOP 0
|
ENV WARNONSTOP 0
|
||||||
|
# UID of the user steam
|
||||||
|
ENV UID 1000
|
||||||
|
# GID of the user steam
|
||||||
|
ENV GID 1000
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
RUN apt-get update &&\
|
RUN apt-get update &&\
|
||||||
|
@ -48,10 +52,13 @@ RUN usermod -a -G sudo steam
|
||||||
|
|
||||||
# Copy & rights to folders
|
# Copy & rights to folders
|
||||||
COPY run.sh /home/steam/run.sh
|
COPY run.sh /home/steam/run.sh
|
||||||
|
COPY user.sh /home/steam/user.sh
|
||||||
COPY crontab /home/steam/crontab
|
COPY crontab /home/steam/crontab
|
||||||
COPY arkmanager-user.cfg /home/steam/arkmanager.cfg
|
COPY arkmanager-user.cfg /home/steam/arkmanager.cfg
|
||||||
|
|
||||||
|
RUN touch /root/.bash_profile
|
||||||
RUN chmod 777 /home/steam/run.sh
|
RUN chmod 777 /home/steam/run.sh
|
||||||
|
RUN chmod 777 /home/steam/user.sh
|
||||||
RUN mkdir /ark
|
RUN mkdir /ark
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +82,7 @@ COPY instance.cfg /etc/arkmanager/instances/main.cfg
|
||||||
|
|
||||||
RUN chown steam -R /ark && chmod 755 -R /ark
|
RUN chown steam -R /ark && chmod 755 -R /ark
|
||||||
|
|
||||||
USER steam
|
#USER steam
|
||||||
|
|
||||||
# download steamcmd
|
# download steamcmd
|
||||||
RUN mkdir /home/steam/steamcmd &&\
|
RUN mkdir /home/steam/steamcmd &&\
|
||||||
|
@ -96,4 +103,4 @@ VOLUME /ark
|
||||||
WORKDIR /ark
|
WORKDIR /ark
|
||||||
|
|
||||||
# Update game launch the game.
|
# Update game launch the game.
|
||||||
ENTRYPOINT ["/home/steam/run.sh"]
|
ENTRYPOINT ["/home/steam/user.sh"]
|
||||||
|
|
14
run.sh
14
run.sh
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
echo "###########################################################################"
|
echo "###########################################################################"
|
||||||
echo "# Ark Server - " `date`
|
echo "# Ark Server - " `date`
|
||||||
|
echo "# UID $UID - GID $GID"
|
||||||
echo "###########################################################################"
|
echo "###########################################################################"
|
||||||
[ -p /tmp/FIFO ] && rm /tmp/FIFO
|
[ -p /tmp/FIFO ] && rm /tmp/FIFO
|
||||||
mkfifo /tmp/FIFO
|
mkfifo /tmp/FIFO
|
||||||
|
@ -20,10 +21,7 @@ function stop {
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ ! -w /ark ]; then
|
|
||||||
echo "[Error] Can't access ark directory. Check permissions on your mapped directory with /ark"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Change working directory to /ark to allow relative path
|
# Change working directory to /ark to allow relative path
|
||||||
cd /ark
|
cd /ark
|
||||||
|
@ -38,14 +36,14 @@ cp /home/steam/crontab /ark/template/crontab
|
||||||
[ ! -d /ark/log ] && mkdir /ark/log
|
[ ! -d /ark/log ] && mkdir /ark/log
|
||||||
[ ! -d /ark/backup ] && mkdir /ark/backup
|
[ ! -d /ark/backup ] && mkdir /ark/backup
|
||||||
[ ! -d /ark/staging ] && mkdir /ark/staging
|
[ ! -d /ark/staging ] && mkdir /ark/staging
|
||||||
[ ! -f /ark/Game.ini ] && ln -s server/ShooterGame/Saved/Config/LinuxServer/Game.ini Game.ini
|
[ ! -L /ark/Game.ini ] && ln -s server/ShooterGame/Saved/Config/LinuxServer/Game.ini Game.ini
|
||||||
[ ! -f /ark/GameUserSettings.ini ] && ln -s server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini GameUserSettings.ini
|
[ ! -L /ark/GameUserSettings.ini ] && ln -s server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini GameUserSettings.ini
|
||||||
[ ! -f /ark/crontab ] && cp /ark/template/crontab /ark/crontab
|
[ ! -f /ark/crontab ] && cp /ark/template/crontab /ark/crontab
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d "/ark/server" ] || [ ! -f "/ark/server/arkversion" ];then
|
if [ ! -d /ark/server ] || [ ! -f /ark/server/arkversion ];then
|
||||||
mkdir /ark/server
|
echo "No game files found. Installing..."
|
||||||
arkmanager install
|
arkmanager install
|
||||||
# Create mod dir
|
# Create mod dir
|
||||||
mkdir /ark/server/ShooterGame/Content/Mods
|
mkdir /ark/server/ShooterGame/Content/Mods
|
||||||
|
|
21
user.sh
Normal file
21
user.sh
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Change the UID if needed
|
||||||
|
if [ ! "$(id -u steam)" -eq "$UID" ]; then
|
||||||
|
echo "Changing steam uid to $UID."
|
||||||
|
usermod -o -u "$UID" steam ;
|
||||||
|
fi
|
||||||
|
# Change gid if needed
|
||||||
|
if [ ! "$(id -g steam)" -eq "$GID" ]; then
|
||||||
|
echo "Changing steam gid to $GID."
|
||||||
|
groupmod -o -g "$GID" steam ;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Put steam owner of directories (if the uid changed, then it's needed)
|
||||||
|
chown -R steam:steam /ark /home/steam
|
||||||
|
|
||||||
|
# avoid error message when su -p (we need to read the /root/.bash_rc )
|
||||||
|
chmod -R 777 /root/
|
||||||
|
|
||||||
|
# Launch run.sh with user steam (-p allow to keep env variables)
|
||||||
|
su -p - steam -c /home/steam/run.sh
|
Loading…
Reference in a new issue