Распространение Beanstalk On Docker через Codepipleline не завершено - PullRequest
0 голосов
/ 04 мая 2020

Я настраиваю CI / CD с использованием Codepipeline и Beanstalk On Docker.

Работает нормально до процесса сборки Codepipeline, но Deploy продолжает давать сбой.

Причина для сбоя точно не известно, но возникает следующая ошибка. Сервис: AmazonCloudFormation, Сообщение: стек с именем 'awseb - stack' прервана операция. Текущее состояние: 'UPDATE_ROLLBACK_IN_PROGRESS' Причина: не удалось создать следующий ресурс (ы): [AWSEBUpdateWaitConditionAFyGSI, AWSEBInstanceLaunchWaitConditionaiyqOL].

Мой Dockerfile и buildrSun * 10 .27. json файлов:

Dockerfile

FROM node:12.16.3-alpine as tsbuild

RUN mkdir /usr/app
WORKDIR /usr/app

COPY . /usr/app

RUN npm install
RUN npm run build

FROM node:12.16.3-alpine

RUN mkdir /usr/app
WORKDIR /usr/app

COPY --from=tsbuild /usr/app/dist /usr/app
COPY package*.json /usr/app/

RUN npm install -g pm2
RUN npm install

EXPOSE 8080

CMD ["npm", "run", "prod"]

buildspe c .yml

version: 0.2
env:
  variables:
    AWS_DEFAULT_REGION: ap-northeast-2
    AWS_EB_DEPLOY_ENV: docker
phases:
  install:
    runtime-versions:
      docker: 18
      nodejs: 10
    commands:
      - aws --version
      - $(aws ecr get-login --no-include-email --region ap-northeast-2)
      - npm install
  build:
    commands:
      - docker build -t image .
  post_build:
    commands:
      - docker tag image:latest <ECR_URL>
      - docker <ECR_URL>

Dockerrun. aws. json

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": <ECR_URL>,
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "8080"
    }],
  "Volumes": [],
  "Logging": "/var/log/nodejs"
}

Кроме того, я использую ts-node, но когда я открываю zip, распространяемый в Beanstalk, я не могу найти папку dist.

Я использую BuildArtifacts в CodeDeploy, а не SourceArtifacts. Может ли это быть проблемой?

Я хотел бы знать, что я сделал ошибку.

1 Ответ

0 голосов
/ 09 мая 2020

Мне кажется, что 'Dockerrun. aws. json' не входит в исходный комплект. Если он находится в root репозитория, добавьте в buildspe c .yml следующее:

artifacts:
  files:
    -  '**/*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...