diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 69c5b18..39ce457 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set Environment Variables run: | @@ -39,31 +39,34 @@ jobs: IMAGE_NAME="my-nextjs-app:$DEPLOY_ENV" NEW_CONTAINER_NAME="$CONTAINER_NAME-new" - # Prüft, ob der alte Container existiert und entfernt ihn - if [ $(docker ps -aq -f name=$NEW_CONTAINER_NAME) ]; then + # Entferne vorhandenen temporären Container, falls vorhanden + if [ "$(docker ps -aq -f name=$NEW_CONTAINER_NAME)" ]; then echo "Removing existing new container ($NEW_CONTAINER_NAME)..." docker rm -f "$NEW_CONTAINER_NAME" || true fi - # Führt den neuen Container auf einem temporären internen Port aus + # Starte den neuen Container auf einem temporären internen Port docker run -d --name "$NEW_CONTAINER_NAME" -p 40000:3000 $IMAGE_NAME - # Warten, um sicherzustellen, dass der neue Container läuft + # Warte, um sicherzustellen, dass der neue Container läuft sleep 10 - # Prüfen, ob der neue Container erfolgreich läuft - if [ $(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME) == "true" ]; then - # Stoppt und entfernt den alten Container, falls vorhanden - if [ $(docker ps -aq -f name=$CONTAINER_NAME) ]; then + # Prüfe, ob der neue Container erfolgreich läuft + if [ "$(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME)" == "true" ]; then + # Stoppe und entferne den alten Container, falls vorhanden + if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then docker stop "$CONTAINER_NAME" || true docker rm "$CONTAINER_NAME" || true fi - # Benennt den neuen Container zum alten Namen um und weist den gewünschten Port zu - docker rename "$NEW_CONTAINER_NAME" "$CONTAINER_NAME" + # Stoppe und entferne den temporären Container + docker stop "$NEW_CONTAINER_NAME" || true + docker rm "$NEW_CONTAINER_NAME" || true + + # Starte den Container mit dem gewünschten Namen und Port docker run -d --name "$CONTAINER_NAME" -p $PORT:3000 $IMAGE_NAME else echo "New container failed to start." docker logs $NEW_CONTAINER_NAME exit 1 - fi + fi \ No newline at end of file