From 166eeca9e66d64df17edf24fc85f26d2924e542e Mon Sep 17 00:00:00 2001 From: Juraj Kubrican Date: Fri, 10 Jan 2025 13:35:36 +0100 Subject: [PATCH 1/3] run_number --- .github/workflows/docker-build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 21c4541..72a9b2c 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -15,7 +15,9 @@ jobs: - name: Build Docker image run: | - docker build -t "ghcr.io/jurajkubrican/knet/go-web-server:latest" . + IMAGE_NAME="ghcr.io/jurajkubrican/knet/go-web-server" + RUN_NUMBER="${{ github.run_number }}" + docker build -t "$IMAGE_NAME:latest" -t "$IMAGE_NAME:${{ github.run_number }}" . - name: Log in to GitHub Container Registry uses: docker/login-action@v2 From b0c9da758d72194f2ae24d4d4351f52232824855 Mon Sep 17 00:00:00 2001 From: Juraj Kubrican Date: Fri, 10 Jan 2025 13:38:07 +0100 Subject: [PATCH 2/3] healthcheck 2 --- .github/workflows/docker-build-self.yml | 41 +++++++++++++++---------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/.github/workflows/docker-build-self.yml b/.github/workflows/docker-build-self.yml index 77f9bcd..f72c2ae 100644 --- a/.github/workflows/docker-build-self.yml +++ b/.github/workflows/docker-build-self.yml @@ -16,7 +16,17 @@ jobs: - name: Build Docker image run: | - docker build -t "go-web-server:latest" . + IMAGE_NAME="ghcr.io/jurajkubrican/knet/go-web-server" + RUN_NUMBER="${{ github.run_number }}" + docker build -t "$IMAGE_NAME:latest" -t "$IMAGE_NAME:${{ github.run_number }}" . + + - name: Ensure no existing temp container + run: | + if [ "$(docker ps -aq -f name=temp-go-web-server)" ]; then + docker stop temp-go-web-server || true + docker rm temp-go-web-server || true + fi + - name: Run temporary container for health check run: | @@ -24,26 +34,25 @@ jobs: sleep 10 # Wait for the container to start if curl -f http://localhost:54322/health; then echo "Health check passed" + docker stop temp-go-web-server + docker rm -f temp-go-web-server else echo "Health check failed" docker logs temp-go-web-server docker stop temp-go-web-server - docker rm temp-go-web-server + docker rm -f temp-go-web-server exit 1 fi - - # - name: Log in to GitHub Container Registry - # uses: docker/login-action@v2 - # with: - # registry: ghcr.io - # username: ${{ github.actor }} - # password: ${{ secrets.CR_PAT }} + - name: Stop and remove current container + run: | + if [ "$(docker ps -q -f name=go-web-server)" ]; then + docker stop go-web-server + docker rm go-web-server + fi - # - name: Push Docker image to GitHub Container Registry - # run: | - # docker push "ghcr.io/jurajkubrican/knet/go-web-server:latest" - - # - name: Verify image is pushed - # run: | - # echo "Docker image pushed to: ghcr.io/jurajkubrican/knet/go-web-server:latest" \ No newline at end of file + - name: Run new container + run: | + IMAGE_NAME="ghcr.io/jurajkubrican/knet/go-web-server" + docker run -d --name go-web-server -p 54321:54321 -v "$(pwd)/data:/app/data" "$IMAGE_NAME:latest" + \ No newline at end of file From 5800ec5107d046b5c88e0e4ff83dc08244d78eca Mon Sep 17 00:00:00 2001 From: Juraj Kubrican Date: Fri, 10 Jan 2025 13:52:12 +0100 Subject: [PATCH 3/3] deployment --- .github/workflows/docker-build-self.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-build-self.yml b/.github/workflows/docker-build-self.yml index f72c2ae..614bd4a 100644 --- a/.github/workflows/docker-build-self.yml +++ b/.github/workflows/docker-build-self.yml @@ -16,7 +16,7 @@ jobs: - name: Build Docker image run: | - IMAGE_NAME="ghcr.io/jurajkubrican/knet/go-web-server" + IMAGE_NAME="go-web-server" RUN_NUMBER="${{ github.run_number }}" docker build -t "$IMAGE_NAME:latest" -t "$IMAGE_NAME:${{ github.run_number }}" . @@ -35,24 +35,24 @@ jobs: if curl -f http://localhost:54322/health; then echo "Health check passed" docker stop temp-go-web-server - docker rm -f temp-go-web-server + docker rm temp-go-web-server else echo "Health check failed" docker logs temp-go-web-server docker stop temp-go-web-server - docker rm -f temp-go-web-server + docker rm temp-go-web-server exit 1 fi - + - name: Stop and remove current container run: | if [ "$(docker ps -q -f name=go-web-server)" ]; then - docker stop go-web-server - docker rm go-web-server + docker stop go-web-server || true + docker rm go-web-server || true fi - name: Run new container run: | - IMAGE_NAME="ghcr.io/jurajkubrican/knet/go-web-server" - docker run -d --name go-web-server -p 54321:54321 -v "$(pwd)/data:/app/data" "$IMAGE_NAME:latest" + IMAGE_NAME="go-web-server" + docker run -d --name go-web-server -p 54321:54321 -v "/volume2/docker/knet/data:/app/data" "$IMAGE_NAME:latest" \ No newline at end of file