update GitHub Actions workflow to use actions/checkout@v4 and improve container management
This commit is contained in:
27
.github/workflows/main.yml
vendored
27
.github/workflows/main.yml
vendored
@@ -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
|
||||
Reference in New Issue
Block a user