Использование GitHub Actions для проверенных сборок
GitHub Actions обеспечивают очень простой способ для конвейеров GitOps, так как вам не нужен дополнительный инструмент CI/CD. Вы можете просто создать или использовать существующие GitHub Actions и настроить его на запуск при каждом обновлении определенной ветви.
Вы можете убедиться, что каждая сборка (т.e. контейнер) может быть проверена самым безопасным способом, нотариальное заверение CodeNotary является обязательным.
Давайте пройдемся по простым шагам по интеграции CodeNotary:
Создание GitHub secrets
Вы можете начать с добавления GitHub secrets для Dockerhub и CodeNotary в свой репозиторий.
Если у вас еще нет бесплатной учетной записи CodeNotary для настройки процесса нотариального заверения, начните с этого:
Создайте свой workflow
GitHub Actions определяются с использованием workflow, которые можно создавать в виде файлов в вашем хранилище в .github/workflows или с помощью пользовательского интерфейса и меню «Actions».
Workflow
Следующий workflow будет запускаться всякий раз, когда обнаруживается новая фиксация в главной ветви, создается инстанс контейнера, нотариально заверяется изображение и отправляется на Dockerhub.com.
Обязательно замените путь к контейнеру с вашим хранилищем учетной записи.
# Определяем, когда действия должны быть запущены on: push: branches: - master tags: - "**"# Название рабочего процесса name: "Continuous Deployment"# Объявляем Jobs jobs: build: name: "Build and deploy" runs-on: ubuntu-latest # Определяем образ докер сборки env: DOCKER_IMAGE: dzlabsch/build-notarize-docker-action # Указываем путь к контейнеру steps: - name: "Checkout" uses: actions/checkout@v1.0.0 - name: "Build Docker image" run: $(which docker) build --tag ${DOCKER_IMAGE}:latest . - name: "Download vcn" run: | curl -L -o /tmp/vcn https://github.com/vchain-us/vcn/releases/download/v0.7.3/vcn-v0.7.3-linux-amd64-static CHECKSUM=$(sha256sum /tmp/vcn | cut -d " " -f 1) echo $CHECKSUM curl -s https://api.codenotary.io/authenticate/$CHECKSUM?org=vchain.us | grep -q :0 chmod +x /tmp/vcn - name: "Notarize Docker Image" run: | VCN_USER=${{ secrets.CODENOTARY_USER }} VCN_PASSWORD=${{ secrets.CODENOTARY_PASS }} /tmp/vcn login VCN_NOTARIZATION_PASSWORD=${{ secrets.CODENOTARY_PASS }} /tmp/vcn n -p --attr GitHub="${GITHUB_SHA:0:7}" docker://${DOCKER_IMAGE}:latest - name: "Docker Login" if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')" run: echo ${{ secrets.DOCKER_PASSWORD }} | $(which docker) login --password-stdin --username ${{ secrets.DOCKER_USERNAME }} - name: "Push Docker image (latest)" if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')" run: $(which docker) push ${DOCKER_IMAGE}:latest - name: "Docker Logout" if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')" run: $(which docker) logout
Проверяем Workflow
Когда вы фиксируете следующие изменения в главной ветке, GitHub Actions должен запускаться автоматически.
Когда вы щелкаете по заголовку рабочего процесса, вы также можете проверить детали различных шагов.
и вы можете открыть каждую задачу индивидуально, чтобы проверить детали:
Аутентифицировать образ контейнера
Каждый, кто загружает и использует это нотариальный заверенный образ контейнера, может проверить его подлинность, используя CodeNotary vcn (vcn authenticate docker://image).
Он также может быть легко интегрирован в процесс развертывания.