- Lastest SteamCMD update throws new steamservice.so error that does not seem to affect downloads, so we will ignore it.
- Now prints found unknown error/failure logs to the console if they occur for easier debugging.
- Updates `libtbb2` to `libtbbmalloc2`, as `libtbb2` has been depreciated.
- Fixes error message coloring for certain error messages.
- Fixes current issue where SteamCMD will intermittently present a "Failure" error when downloading Workshop mods due to a corrupt cache file.
- Replaced hard coded workshop directory path with a variable.
- Utilize `numactl` to force SteamCMD to run on only one CPU which resolves its current crashing issues on Debian.
- SteamCMD now complains about thread priority due to it failing to properly load `libSDL` (`libSDL` is included in the image, but will not load properly if it is not installed on the host due to it containing a kernel extension). Therefore, any warnings regarding threads will now be ignored.
- If SteamCMD fatally crashes, copy the directory where it saves its dumps (`/tmp/dumps`) to `/home/container` for easier debugging access.
Files:
- Remove dependency of having `libnss_wrapper.so` libraries directly in the image. Instead, use the libraries provided with their respective packages. This fixes the current 32-bit version being broken and ensures the libraries stay up to date with their respective packages.
- Slight change to passwd.template to accommodate variable name change.
Dockerfile:
- Change the base image to Debian, which from testing appears to run cleaner and faster for Arma. It also should yield a smaller image.
- Fix depreciated `ENV` call format.
- Removed un-needed packages.
- Added iproute2 package.
- Consolidated the NSS Wrapper setup to a commented group of lines to make understanding it's purpose and setup more clear.
- Added shell flag to `useradd` command.
Entrypoint:
- General cleanup.
- Changed `LD_PRELOAD`s to point to package-provided library file locations.
New IP route output appends UID to the result, causing the value to be set to that instead of the IP. Fix it by ignoring the last two appended UID results
SteamCMD apparently put an update out today that now displays a warning if `+force_install_dir` is after `+login`. This removes the error from appearing.
- Fixed RemoveDuplicates function adding an extra trailing semicolon if the input string is empty.
- Added Aussie Server Hosts as a credited contributor for help and ideas on the project.
- Moved the mod movement, lowercase command, and key movement to the "success" portion of the SteamCMD function to prevent the code from trying to perform these actions on failed mod downloads.
- Changed some of the echos to print this process more cleanly
These files originate from https://github.com/parkervcp/images/tree/game/arma3 which is currently hosted at quay.io/parkervcp/pterodactyl-images:game_arma3
However, the entire image has been mainly rewritten in this update, which includes the following changes:
- Code styling / nomenclature has been normalized across the entire file.
- A robust RunSteamCMD function has been added to run SteamCMD with advanced error handling and reporting. Works for both the server and mods, and is configurable with the STEAMCMD_ATTEMPTS environment variable to specify how many times it should retry a download after a recoverable error (like large Workshop mod downloads timing out).
- Added support for a MOD_FILE environment variable, to specify an exported Arma 3 modlist HTML file for import into the server (for downloads and runtime). These mods are combined with any mods listed in MODIFICATIONS.
- A more robust and automatic way of downloading/updating mods is now included with the UPDATE_SERVER function. All mods to be used during runtime are checked for updates by comparing local file's creation dates against the mod's Workshop page last update. This allows for fast and reliable mod updates compared to the old manual system, and allows users to comfortably leave the update server function on all the time if they'd like.
- Added a RemoveDuplicates function to prevent a user from accidentally loading a mod twice.
- Checks for missing, trailing semicolons in manual mod lists due to human error.
- Mod update information echos are less cryptic and now use the mod's human-readable name, as well as printing the date they last updated.
- Made the server binary check error messages less cryptic and provided solution recommendations.
- Added a CLEAR_CACHE env. var. function to delete headless client profiles on startup to help with potential issues they cause.
- Un-hardcoded the basic.cfg URL and replaced with env. var.
- Added HC_HIDE env. var. to prevent headless client console spam.
- Added VALIDATE_SERVER env. var. to manually validate, because the new automatic update function skips validation to speed it up.
- Added CDLC env. var. for easy download of Creator DLCs incase the user doesn't know how to use SteamCMD beta branches.