From a13ecb555a590a0ed7afce034b0905ba67c119ab Mon Sep 17 00:00:00 2001 From: eyunzhu <1036795373@qq.com> Date: Thu, 7 Nov 2024 16:18:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0github=20action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-build-and-push.yml | 73 +++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/docker-build-and-push.yml diff --git a/.github/workflows/docker-build-and-push.yml b/.github/workflows/docker-build-and-push.yml new file mode 100644 index 0000000..98d0a97 --- /dev/null +++ b/.github/workflows/docker-build-and-push.yml @@ -0,0 +1,73 @@ +name: Build and Push Docker Image + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.ref }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Git tag + id: get_tag + run: | + TAG=$(git describe --tags --abbrev=0 2>/dev/null || git rev-parse --short HEAD ) + echo "TAG=$TAG" >> $GITHUB_ENV + + # 构建 baota:minimal + - name: Build minimal image + run: | + docker build -t eyunzhu/baota:minimal -t eyunzhu/baota:latest -t eyunzhu/baota:minimal-${{ env.TAG }} -f ./dockerfiles/dockerfile.baota . || exit 1 + + # 验证 baota:minimal 是否存在 + - name: Verify images exist + run: | + if ! docker image inspect eyunzhu/baota:minimal > /dev/null 2>&1; then + echo "Error: eyunzhu/baota:minimal does not exist!" + exit 1 + fi + + # 构建 baota:lnmp + - name: Build lnmp image + run: | + docker build -t eyunzhu/baota:lnmp -t eyunzhu/baota:lnmp-${{ env.TAG }} -f ./dockerfiles/dockerfile.baota-lnmp . || exit 1 + + # 验证 baota:lnmp 是否存在 + - name: Verify images exist + run: | + if ! docker image inspect eyunzhu/baota:lnmp > /dev/null 2>&1; then + echo "Error: eyunzhu/baota:lnmp does not exist!" + exit 1 + fi + + + - name: Push minimal image to Docker Hub + run: | + docker push eyunzhu/baota:minimal + docker push eyunzhu/baota:latest + docker push eyunzhu/baota:minimal-${{ env.TAG }} + + - name: Push LNMP image to Docker Hub + run: | + docker push eyunzhu/baota:lnmp + docker push eyunzhu/baota:lnmp-${{ env.TAG }}