diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 6ab1b9c..58f44e9 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -86,19 +86,21 @@ jobs: IMAGE_TAG: ${{ github.sha }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} NGINX_CONTAINER: ${{ secrets.NGINX_CONTAINER }} + NGINX_CONF_FILE: ${{ secrets.NGINX_CONF_FILE }} NGINX_UPSTREAM_FILE: ${{ secrets.NGINX_UPSTREAM_FILE }} with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USER }} key: ${{ secrets.SSH_PRIVATE_KEY }} - envs: REGISTRY,IMAGE_NAME,IMAGE_TAG,DEPLOY_PATH,NGINX_CONTAINER,NGINX_UPSTREAM_FILE + envs: REGISTRY,IMAGE_NAME,IMAGE_TAG,DEPLOY_PATH,NGINX_CONTAINER,NGINX_CONF_FILE,NGINX_UPSTREAM_FILE script: | set -eu APP_DIR="${DEPLOY_PATH:-/opt/bemeal}" COMPOSE_FILE="docker-compose.prod.yml" COMPOSE_ENV_FILE=".env.prod" - NGINX_CONTAINER="${NGINX_CONTAINER:-nginx}" + NGINX_CONTAINER="${NGINX_CONTAINER:-nginx-app-1}" + NGINX_CONF_FILE="${NGINX_CONF_FILE:-/etc/nginx/conf.d/bemeal.conf}" NGINX_UPSTREAM_FILE="${NGINX_UPSTREAM_FILE:-/etc/nginx/conf.d/bemeal-upstream.inc}" DRAIN_SECONDS="${DRAIN_SECONDS:-20}" @@ -176,10 +178,14 @@ jobs: docker exec "$TARGET_SERVICE" wget -qO- http://127.0.0.1/api/health >/dev/null + NGINX_CONF_DIR="$(dirname "$NGINX_CONF_FILE")" NGINX_UPSTREAM_DIR="$(dirname "$NGINX_UPSTREAM_FILE")" - docker exec "$NGINX_CONTAINER" sh -c "mkdir -p '$NGINX_UPSTREAM_DIR'" + docker exec "$NGINX_CONTAINER" sh -c "mkdir -p '$NGINX_CONF_DIR' '$NGINX_UPSTREAM_DIR'" + docker exec "$NGINX_CONTAINER" sh -c "test ! -f '$NGINX_CONF_FILE' || cp '$NGINX_CONF_FILE' '$NGINX_CONF_FILE.bak'" docker exec "$NGINX_CONTAINER" sh -c "test ! -f '$NGINX_UPSTREAM_FILE' || cp '$NGINX_UPSTREAM_FILE' '$NGINX_UPSTREAM_FILE.bak'" + docker cp docker/nginx/bemeal.conf "$NGINX_CONTAINER:$NGINX_CONF_FILE" + printf '%s\n' \ 'upstream bemeal_api {' \ " server $TARGET_HOST:80 max_fails=3 fail_timeout=10s;" \ @@ -190,6 +196,9 @@ jobs: if docker exec "$NGINX_CONTAINER" sh -c "test -f '$NGINX_UPSTREAM_FILE.bak'" 2>/dev/null; then docker exec "$NGINX_CONTAINER" sh -c "mv '$NGINX_UPSTREAM_FILE.bak' '$NGINX_UPSTREAM_FILE'" fi + if docker exec "$NGINX_CONTAINER" sh -c "test -f '$NGINX_CONF_FILE.bak'" 2>/dev/null; then + docker exec "$NGINX_CONTAINER" sh -c "mv '$NGINX_CONF_FILE.bak' '$NGINX_CONF_FILE'" + fi exit 1 fi @@ -197,6 +206,7 @@ jobs: echo "Switch Nginx traffic to $TARGET" docker exec "$NGINX_CONTAINER" nginx -s reload docker exec "$NGINX_CONTAINER" rm -f "$NGINX_UPSTREAM_FILE.bak" + docker exec "$NGINX_CONTAINER" rm -f "$NGINX_CONF_FILE.bak" echo "Restart workers on the new image" $COMPOSE up -d --force-recreate --no-deps horizon scheduler