七十一、Git和容器CI/CD-GitHub Actions部署在線文檔

build.yml文件

name: docker image build and push
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      - name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v1
      - name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}
      - name: Build and push
        id: docker_build
        uses: docker/build-push-action@v2
        with:
          push: true
          platforms: linux/amd64,linux/arm64
          tags: insaneloafer/dockertips:latest
  deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: deploy to aws
        run: |
          cd ansible/
          pip install ansible
          echo ${{ secrets.ANSIBLE_VAULT }} > vault_pass.txt
          export ANSIBLE_VAULT_PASSWORD_FILE=vault_pass.txt
          ansible-vault decrypt aws.pem
          ansible-playbook -i hosts deploy.yml

deploy.yml 文件

- name: deploy docker.tips
  hosts: aws
  gather_facts: no
  vars:
    ansible_connection: ssh
    ansible_user: ubuntu
    ansible_ssh_private_key_file: ./aws.pem

  tasks:
    - name: stop the old container
      shell: docker container stop web
      ignore_errors: yes

    - name: update docker image
      shell: docker image pull InsaneLoafer/dockertips:latest

    - name: create new container
      shell: docker container run --rm -d -p 80:80 --name web InsaneLoafer/dockertips:latest
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容