This commit is contained in:
zino
2023-11-23 14:42:08 +01:00
parent ba88040b28
commit 5e2c5a104e
2 changed files with 44 additions and 43 deletions

View File

@@ -1,37 +1,42 @@
#!/bin/bash #!/bin/bash
# Set the container name # Script to deploy LGSM with customized configuration
CONTAINER_NAME="lgsm-cs"
# Exit immediately if a command exits with a non-zero status
set -e
# Directory variables
CURRENT_DIR="${PWD}"
VOLUMES_DIR="${CURRENT_DIR}/volumes"
CONFIG_REPO_DIR="$(mktemp -d)"
# Combined Git clone command
GIT_COMMAND="sudo git clone -b funmaps ssh://git@git.zinomedia.de:222/zino/lgsm-cs.git ${CONFIG_REPO_DIR}"
# Function to display [INFO] in blue and the message in default color # Function to display [INFO] in blue and the message in default color
info() { info() {
printf "\033[0;34m[INFO]\033[0m %s\n" "$1" printf "\033[0;34m[INFO]\033[0m %s\n" "$1"
} }
# Function to check if the container is running # Function to clone and merge configuration repository
is_container_running() { clone_and_merge_config() {
[ "$(docker-compose ps -q ${CONTAINER_NAME} | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null)" = "running" ] info "Cloning configuration repository to ${CONFIG_REPO_DIR}..."
${GIT_COMMAND}
info "Merging configuration from ${CONFIG_REPO_DIR} to ${VOLUMES_DIR}..."
sudo rsync -a "${CONFIG_REPO_DIR}/" "${VOLUMES_DIR}/"
info "Removing configuration repository from ${CONFIG_REPO_DIR}..."
sudo rm -rf "${CONFIG_REPO_DIR}"
} }
# Function to execute commands in the container # Main deployment process
execute_in_container() { info "Stopping Docker container..."
info "Executing command in container: $1" docker-compose down
docker-compose exec -T "${CONTAINER_NAME}" sh -c "$1"
}
# Check if the container is running clone_and_merge_config
if ! is_container_running; then
info "Warning: Container ${CONTAINER_NAME} is not running. Please start the container and rerun the script."
exit 1
fi
# Container is confirmed to be running, proceed with script operations info "Starting Docker container with customized configuration..."
docker-compose up -d
# Moving and copying libstdc++.so.6 info "Deployment completed successfully."
execute_in_container "mv /data/serverfiles/libstdc++.so.6 /data/serverfiles/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/serverfiles/"
execute_in_container "mv /data/.local/share/Steam/steamcmd/linux32/libstdc++.so.6 /data/.local/share/Steam/steamcmd/linux32/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/.local/share/Steam/steamcmd/linux32/"
# Moving and copying libgcc_s.so.1
execute_in_container "mv /data/serverfiles/libgcc_s.so.1 /data/serverfiles/libgcc_s.so.1.bak && cp /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /data/serverfiles/"
info "Script operations completed successfully."

View File

@@ -1,33 +1,31 @@
#!/bin/bash #!/bin/bash
# Set the service name as defined in docker-compose.yml # Set the container name
SERVICE_NAME="correct-service-name" # Replace with your actual service name CONTAINER_NAME="lgsm-cs"
# Function to display [INFO] in blue and the message in default color
info() {
printf "\033[0;34m[INFO]\033[0m %s\n" "$1"
}
# Function to check if the container is running # Function to check if the container is running
is_container_running() { is_container_running() {
[ "$(docker-compose ps -q ${SERVICE_NAME} | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null)" = "running" ] [ "$(docker-compose ps -q ${CONTAINER_NAME} | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null)" = "running" ]
} }
# Function to execute commands in the container # Function to execute commands in the container
execute_in_container() { execute_in_container() {
echo "Executing command in container: $1" info "Executing command in container: $1"
docker-compose exec -T "${SERVICE_NAME}" sh -c "$1" docker-compose exec -T "${CONTAINER_NAME}" sh -c "$1"
} }
# Start all services using docker-compose, if not already running # Check if the container is running
if ! is_container_running; then if ! is_container_running; then
echo "Starting all services defined in docker-compose.yml..." info "Warning: Container ${CONTAINER_NAME} is not running. Please start the container and rerun the script."
docker-compose up -d exit 1
else
echo "Service ${SERVICE_NAME} is already running."
fi fi
# Wait for the specific container to be fully up and running # Container is confirmed to be running, proceed with script operations
echo "Waiting for service ${SERVICE_NAME} to be fully up and running..."
while ! is_container_running; do
sleep 1
done
echo "Service ${SERVICE_NAME} is now up."
# Moving and copying libstdc++.so.6 # Moving and copying libstdc++.so.6
execute_in_container "mv /data/serverfiles/libstdc++.so.6 /data/serverfiles/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/serverfiles/" execute_in_container "mv /data/serverfiles/libstdc++.so.6 /data/serverfiles/libstdc++.so.6.bak && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /data/serverfiles/"
@@ -36,6 +34,4 @@ execute_in_container "mv /data/.local/share/Steam/steamcmd/linux32/libstdc++.so.
# Moving and copying libgcc_s.so.1 # Moving and copying libgcc_s.so.1
execute_in_container "mv /data/serverfiles/libgcc_s.so.1 /data/serverfiles/libgcc_s.so.1.bak && cp /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /data/serverfiles/" execute_in_container "mv /data/serverfiles/libgcc_s.so.1 /data/serverfiles/libgcc_s.so.1.bak && cp /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /data/serverfiles/"
# Shutdown the specific service after the fixes info "Script operations completed successfully."
echo "Shutting down the service ${SERVICE_NAME}..."
docker-compose stop "${SERVICE_NAME}"