Я настраиваю 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. Может ли это быть проблемой?
Я хотел бы знать, что я сделал ошибку.