LandSandBoat Server - Docker
Go to file
Corey af90b02feb
Fix issue with crash loops
Docker Compose starts the services with the executables as PID 1, which has special signal handling. Run the executables through tini for proper signal handling.
2025-05-04 19:35:59 -04:00
config Add Alpine build 2025-04-13 22:35:56 -04:00
docker Fix issue with crash loops 2025-05-04 19:35:59 -04:00
.gitignore Add Alpine build 2025-04-13 22:35:56 -04:00
LICENSE Containerize server 2025-04-07 02:53:44 -04:00
README.md Add full image builds + build script 2025-05-03 15:18:25 -04:00
build.sh Add full image builds + build script 2025-05-03 15:18:25 -04:00
docker-compose.yml Add full image builds + build script 2025-05-03 15:18:25 -04:00
entrypoint.sh Fix issue with crash loops 2025-05-04 19:35:59 -04:00
lsd_logo.png Containerize server 2025-04-07 02:53:44 -04:00
lsd_logo_circle.png Containerize server 2025-04-07 02:53:44 -04:00

README.md

LSB Server - Docker

Containerized version of LandSandBoat server emulator.
Pre-configured build and runtime environments for a fast and easy install.

Using

See docker-compose.yml for example usage.

The following environment variables are required to connect to a database:

MARIADB_DATABASE or XI_NETWORK_SQL_DATABASE
MARIADB_USER or XI_NETWORK_SQL_LOGIN
MARIADB_PASSWORD or XI_NETWORK_SQL_PASSWORD

If you're setting up a database using the MariaDB image, one of MARIADB_ROOT_PASSWORD_HASH, MARIADB_ROOT_PASSWORD, MARIADB_ALLOW_EMPTY_ROOT_PASSWORD, or MARIADB_RANDOM_ROOT_PASSWORD (or equivalents, including *_FILE), is also required (along with the MARIADB_ variants of the above variables).

You should create and mount an empty config.yaml file so that dbtool can use express updates when new images are pulled.

Building

./build.sh -t ubuntu

This will build the latest LSB server image based on Ubuntu. Navmeshes and Losmeshes are not included in this image.

./build.sh -t meshes

This will build the latest navmeshes and losmeshes from their upstream repositories. This may not match the exact versions LSB uses (Eden maintains losmeshes). After building the meshes image, run the image with the following command:

docker run --rm -v losmeshes:/losmeshes -v navmeshes:/navmeshes ximeshes:latest

This will copy the losmeshes and navmeshes into a local volume that can be mounted into the server image. You can delete the ximeshes image after the volumes are created.


Alpine

Alpine Linux is a minimal image that is smaller than the Ubuntu image. The Alpine build is experimental and unsupported by LSB. It uses a newer version of GCC and the musl libc. Use at your own risk.

Notes

  • The image is built with a default user and group named xiadmin with UID and GID 1000.
    • You can supply the build args UNAME, UGROUP, UID, GID to change these.
      • docker build --build-arg UID="$(id -u)" --build-arg GID="$(id -g)" --build-arg UNAME="$(whoami)" -f docker/ubuntu.Dockerfile .
  • build.sh has options to build a specific origin/branch other than LandSandBoat/base.

DO NOT OPEN ISSUES/DISCUSSIONS RELATED TO DOCKER ON THE LSB GITHUB!