update deps + update build script
This commit is contained in:
42
.github/workflows/docker-build-self.yml
vendored
42
.github/workflows/docker-build-self.yml
vendored
@@ -4,55 +4,57 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
# - test
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: self-hosted
|
||||
env:
|
||||
IMAGE_NAME: ${{ github.event.repository.name }}
|
||||
PORT: 54321
|
||||
TEST_PORT: 54322
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Write build number
|
||||
run: echo "${{ github.run_number }}" >> build_number
|
||||
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
IMAGE_NAME="go-web-server"
|
||||
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
|
||||
if [ "$(docker ps -aq -f name=temp-$IMAGE_NAME)" ]; then
|
||||
docker stop temp-$IMAGE_NAME || true
|
||||
docker rm temp-$IMAGE_NAME || true
|
||||
fi
|
||||
|
||||
- name: Run temporary container for health check
|
||||
run: |
|
||||
docker run -d --name temp-go-web-server -p 54322:54321 go-web-server:latest
|
||||
docker run -d --name temp-$IMAGE_NAME -p $TEST_PORT:54321 $IMAGE_NAME:latest
|
||||
sleep 10 # Wait for the container to start
|
||||
if curl -f http://localhost:54322/health; then
|
||||
if curl -f http://localhost:$TEST_PORT/health; then
|
||||
echo "Health check passed"
|
||||
docker stop temp-go-web-server
|
||||
docker rm temp-go-web-server
|
||||
docker stop temp-$IMAGE_NAME
|
||||
docker rm temp-$IMAGE_NAME
|
||||
else
|
||||
echo "Health check failed"
|
||||
docker logs temp-go-web-server
|
||||
docker stop temp-go-web-server
|
||||
docker rm temp-go-web-server
|
||||
docker logs temp-$IMAGE_NAME
|
||||
docker stop temp-$IMAGE_NAME
|
||||
docker rm temp-$IMAGE_NAME
|
||||
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 || true
|
||||
docker rm go-web-server || true
|
||||
if [ "$(docker ps -q -f name=$IMAGE_NAME)" ]; then
|
||||
docker stop $IMAGE_NAME || true
|
||||
docker rm $IMAGE_NAME || true
|
||||
fi
|
||||
|
||||
- name: Run new container
|
||||
run: |
|
||||
IMAGE_NAME="go-web-server"
|
||||
docker run -d --name go-web-server -p 54321:54321 --restart=always -v "/volume2/docker/knet/data:/app/data" "$IMAGE_NAME:latest"
|
||||
docker run -d --name $IMAGE_NAME -p $PORT:54321 --restart=always -v "/volume2/docker/$IMAGE_NAME/data:/app/data" "$IMAGE_NAME:latest"
|
||||
|
||||
- name: Cleanup
|
||||
run: |
|
||||
docker image prune -a -f --filter="label=$IMAGE_NAME"
|
||||
|
||||
Reference in New Issue
Block a user