mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-09 14:15:22 +01:00
677e13353f
* Adds Dockerfile and Utility Scripts * Remove RUSTG_VERSION from _build_dependencies.sh * Moved documentation to references, added link to mkdocs.yml * Update references, finish documentation, fix typos * Fixed small error in docs and scripts * Add CI action to build and publish game server images * Bump CI action to compatible Ubuntu runner * Fix up the base image for NanoMap rendering * Remove commented out base for nanomap-build stage * Removed default values from Dockerfile build arguments Sanitized default arguments in Dockerfile Updated CI workflow to use _build_dependencies.sh to build the Docker image Added documentation on using --build-arg flags with the docker build command * Modify caching for Docker builds in CI * Add missing files to pacify Nanomap Renderer
51 lines
1.6 KiB
Bash
Executable File
51 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# run
|
|
# Create and run a BYOND server container for Paradise
|
|
|
|
set -euo pipefail
|
|
|
|
BYOND_PORT="6666"
|
|
DB_CONTAINER="paradise_db"
|
|
NETWORK_NAME="paradise_net"
|
|
SERVER_CONTAINER="paradise"
|
|
SERVER_IMAGE="paradise:latest"
|
|
|
|
# make sure we're at the root of the repository
|
|
if [ ! -f "Dockerfile" ]; then
|
|
echo >&2 "Error: No Dockerfile found. Are you at the repository root?"
|
|
exit 1
|
|
fi
|
|
|
|
# make sure the server doesn't already exist
|
|
if docker ps -a --format '{{.Names}}' | grep -qx "${SERVER_CONTAINER}"; then
|
|
echo >&2 "Error: container '${SERVER_CONTAINER}' already exists."
|
|
echo >&2 "Stop it with: docker rm -f ${SERVER_CONTAINER}"
|
|
exit 1
|
|
fi
|
|
|
|
# make sure the database is running, so we can connect to it
|
|
if ! docker ps --format '{{.Names}}' | grep -qx "${DB_CONTAINER}"; then
|
|
echo >&2 "Error: container '${DB_CONTAINER}' is not running."
|
|
echo >&2 "Start it (or recreate it) before running the server."
|
|
exit 1
|
|
fi
|
|
|
|
# ensure the server has a 'config.toml' file to use
|
|
[ -f "config/config.toml" ] || { echo >&2 "Error: missing config/config.toml (did you copy config/example/config.toml yet?)"; exit 1; }
|
|
|
|
# ensure we've got a data directory with 'mode.txt'
|
|
mkdir -p data
|
|
[ -f "data/mode.txt" ] || echo "extended" >data/mode.txt
|
|
|
|
# create and run the server container
|
|
# --detach \ <== add this below if you want it to run in the background
|
|
docker run \
|
|
--init \
|
|
--name "${SERVER_CONTAINER}" \
|
|
--network "${NETWORK_NAME}" \
|
|
--publish "${BYOND_PORT}:6666" \
|
|
--rm \
|
|
--mount type=bind,src="${PWD}/config",dst=/config,readonly \
|
|
--mount type=bind,src="${PWD}/data",dst=/data \
|
|
"${SERVER_IMAGE}"
|