admin管理员组文章数量:814857
通过Codepipleline在Docker上进行Beanstalk分发不完整
我正在使用Codepipeline和Beanstalk On Docker配置CI / CD。
在Codepipeline的生成过程之前,它可以正常工作,但是Deploy一直失败。
失败的原因尚不清楚,但以下发生错误。服务:AmazonCloudFormation,消息:名为堆栈'awseb--stack'中止操作。当前状态:“ UPDATE_ROLLBACK_IN_PROGRESS”原因:以下资源失败创建:[AWSEBUpdateWaitConditionAFyGSI,AWSEBInstanceLaunchWaitConditionaiyqOL]。
我的Dockerfile和buildspec.yml,以及dockerrun.aws.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"]
buildspec.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,但是当我打开Beanstalk中分发的zip时,找不到dist文件夹。
我正在CodeDeploy中使用BuildArtifacts,而不是SourceArtifacts。这可能是个问题吗?
我想知道我做错了。
回答如下:在我看来,'Dockerrun.aws.json'没有进入源包。如果它位于代码存储库的根目录中,请在buildspec.yml中添加以下内容:
artifacts:
files:
- '**/*'
本文标签: 通过Codepipleline在Docker上进行Beanstalk分发不完整
版权声明:本文标题:通过Codepipleline在Docker上进行Beanstalk分发不完整 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1715130412a821368.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论