mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 10:21:27 +00:00
generate unique env file for each deployment to prevent conflicts
This commit is contained in:
@@ -171,8 +171,12 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Generate a random filename for the environment file to prevent conflicts
|
||||||
|
# when multiple deployments are happening at the same time.
|
||||||
|
ENV_FILE="${REMOTE_UPDATE_PATH}/${SUBDOMAIN}-${RANDOM}.env"
|
||||||
|
|
||||||
ssh -i $SSH_KEY $REMOTE_USER@$SERVER_HOST "chmod +x $REMOTE_UPDATE_SCRIPT && \
|
ssh -i $SSH_KEY $REMOTE_USER@$SERVER_HOST "chmod +x $REMOTE_UPDATE_SCRIPT && \
|
||||||
cat > $REMOTE_UPDATE_PATH/.env << 'EOL'
|
cat > $ENV_FILE << 'EOL'
|
||||||
GAME_ENV=$ENV
|
GAME_ENV=$ENV
|
||||||
ENV=$ENV
|
ENV=$ENV
|
||||||
HOST=$HOST
|
HOST=$HOST
|
||||||
@@ -192,8 +196,8 @@ OTEL_ENDPOINT=$OTEL_ENDPOINT
|
|||||||
BASIC_AUTH_USER=$BASIC_AUTH_USER
|
BASIC_AUTH_USER=$BASIC_AUTH_USER
|
||||||
BASIC_AUTH_PASS=$BASIC_AUTH_PASS
|
BASIC_AUTH_PASS=$BASIC_AUTH_PASS
|
||||||
EOL
|
EOL
|
||||||
chmod 600 $REMOTE_UPDATE_PATH/.env && \
|
chmod 600 $ENV_FILE && \
|
||||||
$REMOTE_UPDATE_SCRIPT"
|
$REMOTE_UPDATE_SCRIPT $ENV_FILE"
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "❌ Failed to execute update script on server."
|
echo "❌ Failed to execute update script on server."
|
||||||
|
|||||||
@@ -2,12 +2,25 @@
|
|||||||
# update.sh - Script to update Docker container on Hetzner server
|
# update.sh - Script to update Docker container on Hetzner server
|
||||||
# Called by deploy.sh after uploading Docker image to Docker Hub
|
# Called by deploy.sh after uploading Docker image to Docker Hub
|
||||||
|
|
||||||
# Load environment variables if .env exists
|
# Check if environment file is provided
|
||||||
if [ -f /home/openfront/.env ]; then
|
if [ $# -ne 1 ]; then
|
||||||
echo "Loading environment variables from .env file..."
|
echo "Error: Environment file path is required"
|
||||||
export $(grep -v '^#' /home/openfront/.env | xargs)
|
echo "Usage: $0 <env_file_path>"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ENV_FILE="$1"
|
||||||
|
|
||||||
|
# Check if environment file exists
|
||||||
|
if [ ! -f "$ENV_FILE" ]; then
|
||||||
|
echo "Error: Environment file '$ENV_FILE' not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load environment variables from the provided file
|
||||||
|
echo "Loading environment variables from $ENV_FILE..."
|
||||||
|
export $(grep -v '^#' "$ENV_FILE" | xargs)
|
||||||
|
|
||||||
echo "======================================================"
|
echo "======================================================"
|
||||||
echo "🔄 UPDATING SERVER: ${HOST} ENVIRONMENT"
|
echo "🔄 UPDATING SERVER: ${HOST} ENVIRONMENT"
|
||||||
echo "======================================================"
|
echo "======================================================"
|
||||||
@@ -47,7 +60,7 @@ fi
|
|||||||
echo "Starting new container for ${HOST} environment..."
|
echo "Starting new container for ${HOST} environment..."
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--restart="${RESTART}" \
|
--restart="${RESTART}" \
|
||||||
--env-file /home/openfront/.env \
|
--env-file "$ENV_FILE" \
|
||||||
--name "${CONTAINER_NAME}" \
|
--name "${CONTAINER_NAME}" \
|
||||||
"${DOCKER_IMAGE}"
|
"${DOCKER_IMAGE}"
|
||||||
|
|
||||||
@@ -60,6 +73,11 @@ if [ $? -eq 0 ]; then
|
|||||||
docker image prune -a -f
|
docker image prune -a -f
|
||||||
docker container prune -f
|
docker container prune -f
|
||||||
echo "Cleanup complete."
|
echo "Cleanup complete."
|
||||||
|
|
||||||
|
# Remove the environment file
|
||||||
|
echo "Removing environment file ${ENV_FILE}..."
|
||||||
|
rm -f "$ENV_FILE"
|
||||||
|
echo "Environment file removed."
|
||||||
else
|
else
|
||||||
echo "Failed to start container"
|
echo "Failed to start container"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user