как создать docker -image и использовать его с k8s в действиях github? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть monorepo из 2 пакетов:

  1. создает docker -image
  2. имеет тесты, которые развертывают (локально) на k8s образ из package-1

, чтобы убедиться, что k8s будет разговаривать с локальным docker deamon и брать образ оттуда, на моем локальном компьютере я запускаю:

  1. eval $ (minikube docker -env --shell sh)
  2. локально построить docker -image в пакете-1 (no docker -pu sh)
  3. запустить тесты в package-2

В github-actions я попытался выполнить те же команды, но первый шаг не сработал: (https://github.com/stavalfi/k8test/pull/6/checks?check_run_id=785330120)

Run eval $(minikube docker-env --shell sh)
/home/runner/work/_temp/932fe76c-855f-4ed6-9fa3-dcd5cea6df7e.sh: line 1: README.md: command not found
##[error]Process completed with exit code 127.

Понятия не имею, что означает эта ошибка и почему в ней появляется «README.md».

Вопрос:

Есть ли способ сделать это работает? даже альтернативный способ убедиться, что в github-actions k8s найдет docker -изображение, которое я создаю?

1 Ответ

0 голосов
/ 26 июня 2020

Через некоторое время я создал рабочее решение этой проблемы. Я не уверен, почему я получил эту ошибку, но вот рабочее решение:

файл конфигурации действий github:

name: Node.js CI

on: [pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x]

    steps:
      - uses: actions/checkout@v2
      - uses: secrethub/actions/env-export@v0.1.0
        env:
          SECRETHUB_CREDENTIAL: ${{ secrets.SECRETHUB_CREDENTIAL }}
          DOCKER_USERNAME: secrethub://stavalfi/dockerhub/username
          DOCKER_PASSWORD: secrethub://stavalfi/dockerhub/access-token
      - name: install k8s
        uses: engineerd/setup-kind@v0.4.0
      - run: minikube start
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - run: yarn install
      - run: yarn build
      - run: eval $(minikube docker-env --shell sh) && yarn workspace simple-service build:docker # build the docker image and let k8s use it locally
      - run: eval $(minikube docker-env --shell sh) && yarn workspace k8test-monitoring build:docker # build the docker image and let k8s use it locally
      - run: DEBUG=k8test:* yarn test # create k8s deployments from the docker-images from the last 2 steps

...