Swapped to a template for file where you agree to EULA. Server now runs.

This commit is contained in:
Matthew Green 2025-04-08 16:34:53 -05:00
parent 539e75c11d
commit 3b60e70d88
7 changed files with 25 additions and 7 deletions

View file

@ -10,8 +10,9 @@ ENV STEAM_DIR=/usr/lib/games/steam
ENV INSTALL_DIR=/home/steam ENV INSTALL_DIR=/home/steam
ENV SERVER_DIR=$INSTALL_DIR/server ENV SERVER_DIR=$INSTALL_DIR/server
ENV CONFIG_DIR=$INSTALL_DIR/.config ENV CONFIG_DIR=$INSTALL_DIR/.config
ENV CONFIG_TEMPLATES_DIR=$INSTALL_DIR/.config-templates
RUN mkdir -p ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} RUN mkdir -p ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} ${CONFIG_TEMPLATES_DIR}
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y libicu-dev apt-get install -y libicu-dev
@ -24,14 +25,17 @@ RUN apt-get update && \
# Create steam user and group # Create steam user and group
RUN groupadd --gid $GID steam && \ RUN groupadd --gid $GID steam && \
useradd --create-home -c 'Steam User' -l --uid $UID --gid $GID --home-dir $INSTALL_DIR steam && \ useradd --create-home -c 'Steam User' -l --uid $UID --gid $GID --home-dir $INSTALL_DIR steam && \
chown -R steam:steam ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} && \ chown -R steam:steam ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} ${CONFIG_TEMPLATES_DIR} && \
chmod 777 ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} chmod 777 ${INSTALL_DIR} ${SERVER_DIR} ${CONFIG_DIR} ${CONFIG_TEMPLATES_DIR}
# Copy and prepare start script # Copy and prepare start script
COPY start.sh $INSTALL_DIR/start.sh COPY start.sh $INSTALL_DIR/start.sh
RUN chmod +x ${INSTALL_DIR}/start.sh && \ RUN chmod +x ${INSTALL_DIR}/start.sh && \
chown -R steam:steam ${INSTALL_DIR}/start.sh chown -R steam:steam ${INSTALL_DIR}/start.sh
# Copy configuration template files
COPY config-templates/ ${CONFIG_TEMPLATES_DIR}
# Switch to steam user # Switch to steam user
USER steam USER steam
WORKDIR $INSTALL_DIR WORKDIR $INSTALL_DIR

View file

@ -0,0 +1 @@
{"GitHubPersonalAccessToken":null,"EulaAccepted":"${EulaDateAccepted}","PluginManagerWarningDismissed":false,"LastPluginAliasesRefresh":null,"PluginVersionCache":{},"PluginAliases":{}}

View file

@ -5,11 +5,24 @@ echo "Current user is: $(whoami)"
steamcmd +force_install_dir $SERVER_DIR +login anonymous +app_update 996560 validate +quit steamcmd +force_install_dir $SERVER_DIR +login anonymous +app_update 996560 validate +quit
# # Ensure config directory exists # # Ensure config directory exists
CONFIGS="$INSTALL_DIR/.config/SCP Secret Laboratory/config/" INTERNAL_CONFIG_SUBDIR="$CONFIG_DIR/SCP Secret Laboratory/config/"
mkdir -p "$CONFIGS" mkdir -p "$INTERNAL_CONFIG_SUBDIR"
chmod 755 "$CONFIGS" chmod 755 "$INTERNAL_CONFIG_SUBDIR"
# Process the internal data template to accept EULA
INTERNAL_DATA_TEMPLATE_FILE="$CONFIG_TEMPLATES_DIR/localadmin_internal_data.json.template"
INTERNAL_DATA_FILE="$INTERNAL_CONFIG_SUBDIR/localadmin_internal_data.json"
if [ ! -f "$INTERNAL_DATA_FILE" ]; then
echo "Creating \`localadmin_internal_data.json\` file with EULA acceptance..."
# Get current date in the correct format
CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%S.%7NZ")
# Replace placeholder in template
sed "s/\${EulaDateAccepted}/$CURRENT_DATE/g" "$INTERNAL_DATA_TEMPLATE_FILE" > "$INTERNAL_DATA_FILE"
chmod 644 "$INTERNAL_DATA_FILE"
echo "Successfully created \`localadmin_internal_data.json\` file with EULA acceptance."
fi
# Run server directly (no need to su) # Run server directly (no need to su)
cd $SERVER_DIR && HOME=$INSTALL_DIR ./LocalAdmin $PORT --help #--config "$CONFIGS" cd $SERVER_DIR && HOME=$INSTALL_DIR ./LocalAdmin $PORT
sleep infinity sleep infinity