GitHub Actions Hackathon 2021 - 원격 호스트에서 도커 이미지 버전 범프

제출 카테고리: DIY 배포



우리는 ⚡ 에너지 균형을 다루는 방법에 특히 주의를 기울여야 하는 시대에 살고 있습니다. 이를 위한 첫 번째 단계는 현재 개인의 전기 및 가스 소비량을 파악하는 것입니다.

이 문제를 해결하기 위해 전기 및 가스에 대한 현재 소비량 📈을 기록하는 작은 개인 React 프로젝트가 있습니다.

지난 몇 년간 내 가스 소비량





지난 몇 년간 나의 전력 소비량





월초에 전기 및 가스 계량기에서 측정값을 가져와 내 저장소의 텍스트 문서에 추가합니다. 그런 다음 GitHub 작업이 나를 대신하여 무거운 작업을 수행하기를 원합니다.
  • 코드를 체크 아웃하고 프로젝트를 빌드하십시오
  • 몇 가지 멋진 태그를 사용하여 새 도커 이미지를 빌드합니다.
  • 멋진 GitHub Container Registry에 새 이미지 게시
  • 내 원격 서버에 연결하고 새 이미지를 배포합니다.

  • 다음 워크플로를 사용하여 이를 성공적으로 구현할 수 있었습니다.

    내 워크플로




    name: Dockerize React Application
    on:
      push:
        branches:
          - 'master'
    jobs:
      build-container:
        name: Build Docker image and deploy to production
        runs-on: ubuntu-latest
        steps:
          -
            name: Checkout code
            uses: actions/checkout@v2
          -
            name: Login to GitHub Container Registry
            uses: docker/login-action@v1
            with:
              registry: ghcr.io
              username: ${{ github.repository_owner }}
              password: ${{ secrets.GITHUB_TOKEN }}
          -
            name: Publish to GitHub Packages
            uses: docker/[email protected]
            with:
              push: true
              tags: ghcr.io/${{ github.repository }}:latest, ghcr.io/${{ github.repository }}:${{ github.run_number }}
          -
            name: Deploy on Remote Server
            uses: thematchless/bump-image-version-action@v2
            with:
              remote_docker_host: [email protected]
              ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
              ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
              service_name: electricity-gas-consumption
              deploy_path: /thematchless/electricity-gas-consumption
              args: up -d
              pull_images_first: true
    

    이 워크플로의 마지막 단계는 내가 만든 GitHub 작업입니다. 이 GitHub 작업은 SSH 프로토콜을 통해 원격 서버의 docker-compose 스택에 배포된 docker 이미지 버전을 올립니다. GitHub 프로젝트 비밀을 활용하여 연결을 위한 SSH 인증서를 추가했습니다.

    유사하고 간단한 것이 필요한 경우 이 작업도 사용할 수 있습니다. 내 작업을 포크하거나 그대로 사용하십시오 🎉


    타의 추종을 불허하는 / 범프 이미지 버전 작업


    ssh를 통해 원격 서버의 docker-compose 파일에 배포된 도커 이미지 버전을 늘리는 GitHub 작업






    원격 호스트의 범프 도커 이미지 버전


    이 리포지토리에는 docker-compose 스택에 지정된 도커 이미지 버전을 올리기 위한 GitHub 작업이 포함되어 있습니다.

    이 GitHub 작업이 작동하기 위한 요구 사항


  • 원격 서버는 ssh를 통해 액세스할 수 있어야 하고 연결할 수 있어야 합니다
  • .
  • ssh를 통해 인증할 ssh 개인 및 공개 키가 있습니다
  • .
  • 개인 및 공개 키를 GitHub 프로젝트 비밀에 저장했습니다.

  • 작업에 대한 구성 옵션



    필수의
    열쇠
    예시
    기본
    설명



    remote_docker_host
    [email protected]
    사용자 이름@호스트


    ssh_private_key
    -----OPENSSH 개인 키 시작----UgAAAAtzc2gtZWQyNTUxOQAAACALBUgUgAAAAtzc2gtZWQyNTUxOQAAACALBUgUgAAAAtzc2gtZWQyNTUxOQAAACALBUg-----END OPENSSH 개인 키-----
    PEM 형식의 개인 키


    ssh_public_key
    ssh-ed25519 ABCDu027374972309
    PEM의 공개 키


    서비스 이름
    슈퍼 팬시 반응 앱

    작성 파일 내의 서비스 이름


    배포 경로
    /home/thematchless/stack-1

    원격 호스트에서 작성 파일을 포함하는 경로


    인수
    위로 -d

    서비스를 시작하는 방법


    스택_파일_이름
    docker-compose.yaml
    docker-compose.yml
    이름



    View on GitHub


    이 GitHub 작업에서 구성할 수 있는 모든 플래그가 포함된 테이블을 README.md에 추가했습니다. 불분명한 부분이 있으면 알려주세요. 최선을 다해 도와드리겠습니다.

    자비를 베푸소서 🙏 첫 글입니다 😎

    좋은 웹페이지 즐겨찾기