update GitHub Actions workflow to use actions/checkout@v4 and improve container management
This commit is contained in:
25
.github/workflows/main.yml
vendored
25
.github/workflows/main.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set Environment Variables
|
- name: Set Environment Variables
|
||||||
run: |
|
run: |
|
||||||
@@ -39,28 +39,31 @@ jobs:
|
|||||||
IMAGE_NAME="my-nextjs-app:$DEPLOY_ENV"
|
IMAGE_NAME="my-nextjs-app:$DEPLOY_ENV"
|
||||||
NEW_CONTAINER_NAME="$CONTAINER_NAME-new"
|
NEW_CONTAINER_NAME="$CONTAINER_NAME-new"
|
||||||
|
|
||||||
# Prüft, ob der alte Container existiert und entfernt ihn
|
# Entferne vorhandenen temporären Container, falls vorhanden
|
||||||
if [ $(docker ps -aq -f name=$NEW_CONTAINER_NAME) ]; then
|
if [ "$(docker ps -aq -f name=$NEW_CONTAINER_NAME)" ]; then
|
||||||
echo "Removing existing new container ($NEW_CONTAINER_NAME)..."
|
echo "Removing existing new container ($NEW_CONTAINER_NAME)..."
|
||||||
docker rm -f "$NEW_CONTAINER_NAME" || true
|
docker rm -f "$NEW_CONTAINER_NAME" || true
|
||||||
fi
|
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
|
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
|
sleep 10
|
||||||
|
|
||||||
# Prüfen, ob der neue Container erfolgreich läuft
|
# Prüfe, ob der neue Container erfolgreich läuft
|
||||||
if [ $(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME) == "true" ]; then
|
if [ "$(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME)" == "true" ]; then
|
||||||
# Stoppt und entfernt den alten Container, falls vorhanden
|
# Stoppe und entferne den alten Container, falls vorhanden
|
||||||
if [ $(docker ps -aq -f name=$CONTAINER_NAME) ]; then
|
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
||||||
docker stop "$CONTAINER_NAME" || true
|
docker stop "$CONTAINER_NAME" || true
|
||||||
docker rm "$CONTAINER_NAME" || true
|
docker rm "$CONTAINER_NAME" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Benennt den neuen Container zum alten Namen um und weist den gewünschten Port zu
|
# Stoppe und entferne den temporären Container
|
||||||
docker rename "$NEW_CONTAINER_NAME" "$CONTAINER_NAME"
|
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
|
docker run -d --name "$CONTAINER_NAME" -p $PORT:3000 $IMAGE_NAME
|
||||||
else
|
else
|
||||||
echo "New container failed to start."
|
echo "New container failed to start."
|
||||||
|
|||||||
Reference in New Issue
Block a user