Github action развернуть docker до AWS ECS ECR - PullRequest
0 голосов
/ 16 апреля 2020

Привет! Я хочу использовать действие Github для создания и вывода sh изображений внешнего и внутреннего бэк-репо моего github на AWS ECR.

Как изменить эту часть конфигурации действия Github ??

- name: Build, tag, and push image to Amazon ECR
  id: build-image
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
    ECR_REPOSITORY: githubactions
    IMAGE_TAG: latest
  run: |
    # Build a docker container and
    # push it to ECR so that it can
    # be deployed to ECS.
    docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

Допустим, в моем репозитории Github у меня есть два изображения с web / Dockerfile и backend / Dockerfile

1 Ответ

1 голос
/ 16 апреля 2020

Вам просто нужно использовать docker build -f PATH и дважды запустить команды build + pu sh, либо в качестве дополнительных команд на одном шаге:

- name: Build, tag, and push images to Amazon ECR
  id: build-image
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
  run: |
    docker build -f backend/Dockerfile -t $ECR_REGISTRY/backend:latest .
    docker push $ECR_REGISTRY/backend:latest
    docker build -f web/Dockerfile -t $ECR_REGISTRY/web:latest .
    docker push $ECR_REGISTRY/web:latest

Или два отдельных шага:

- name: Build, tag, and push backend image to Amazon ECR
  id: build-backend
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
    ECR_REPOSITORY: backend
    IMAGE_TAG: latest
  run: |
    docker build -f backend/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

- name: Build, tag, and push web image to Amazon ECR
  id: build-web
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
    ECR_REPOSITORY: web
    IMAGE_TAG: latest
  run: |
    docker build -f web/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
...