diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 96e7ba1..d3a0e88 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Prepare workspace run: | - rm -rf /tmp/olaper + rm -rf /tmp/olaper || true mkdir -p /tmp/olaper cd /tmp/olaper apk update && apk add openssh docker-cli @@ -27,35 +27,33 @@ jobs: - name: Create volume (if not exists) run: | - if ! docker volume inspect olaper_data >/dev/null 2>&1; then - docker volume create olaper_data - fi + docker volume create olaper_data || true - - name: Stop old container (if running) + - name: Stop and remove old containers run: | - if [ "$(docker ps -q -f name=olaper)" ]; then - docker stop olaper && docker rm olaper + # Stop and remove container named olaper if exists + docker stop olaper || true + docker rm olaper || true + + # Stop and remove any container using port 5005 + PORT=5005 + CONTAINER_IDS=$(docker ps -q --filter "publish=$PORT") + if [ -n "$CONTAINER_IDS" ]; then + echo "Stopping containers using port $PORT..." + docker stop $CONTAINER_IDS + docker rm $CONTAINER_IDS fi - name: Run new container run: | - PORT=5005 - CONTAINER_ID=$(docker ps --format '{{.ID}} {{.Ports}}' | grep ":$PORT->" | awk '{print $1}') - - if [ -n "$CONTAINER_ID" ]; then - echo "Stopping container using port $PORT..." - docker stop "$CONTAINER_ID" - docker rm "$CONTAINER_ID" - fi - docker run -d \ --name olaper \ --restart always \ - -p ${PORT}:5005 \ + -p 5005:5005 \ -e SECRET_KEY=${{ secrets.SECRET_KEY }} \ -e ENCRYPTION_KEY=${{ secrets.ENCRYPTION_KEY }} \ -v olaper_data:/opt/olaper/data \ olaper:latest - name: Cleanup - run: rm -rf /tmp/olaper + run: rm -rf /tmp/olaper || true \ No newline at end of file