我正在设置循环-ci来自动构建/部署到AWS ECR &ECS。
但是,由于没有Dockerfile,生成失败。
也许这是因为我为多个码头图像设置了docker-compose。
但我不知道怎么解决这个问题。
有没有办法让DockerFile代替docker-compose?
article
├ .circleci
├ client
├ api
└ docker-compose.yml我设置了。循环/config.yml。
version: 2.1
orbs:
aws-ecr: circleci/aws-ecr@6.0.0
aws-ecs: circleci/aws-ecs@0.0.8
workflows:
build_and_push_image:
jobs:
- aws-ecr/build-and-push-image:
region: AWS_REGION
account-url: AWS_ECR_ACCOUNT_URL
repo: 'article-ecr-jpskgc'
tag: '${CIRCLE_SHA1}'
- aws-ecs/deploy-service-update:
requires:
- aws-ecr/build-and-push-image
family: 'article-task-jpskgc'
cluster-name: 'article-cluster-jpskgc'
service-name: 'article-service-jpskgc'
container-image-name-updates: 'container=article-container-jpskgc,tag=${CIRCLE_SHA1}'这是github的源代码。https://github.com/jpskgc/article
我希望构建/部署通过循环-ci到ECR/ECS取得成功,但实际上失败了。
这是圆-ci上的错误日志。
Build docker image
Exit code: 1
#!/bin/bash -eo pipefail
docker build \
\
-f Dockerfile \
-t $AWS_ECR_ACCOUNT_URL/article-ecr-jpskgc:${CIRCLE_SHA1} \
.
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/circleci/project/Dockerfile: no such file or directory
Exited with code 1发布于 2019-08-05 14:16:52
您必须使用Dockerfile,查看您正在使用的orb的文档。请读一遍,这里。此外,docker-compose≠docker,因此,我将确认一个不能用来代替另一个。
鉴于您的docker-compose.yml,我有一些建议,您的一般设置和CI。
值得参考的是所讨论的docker-compose.yml:
version: '3'
services:
db:
image: mysql
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: article
MYSQL_USER: docker
MYSQL_PASSWORD: docker
nginx:
restart: always
build:
dockerfile: Dockerfile.dev
context: ./nginx
ports:
- '3050:80'
api:
build:
dockerfile: Dockerfile.dev
context: ./api
volumes:
- ./api:/app
ports:
- 2345:2345
depends_on:
- db
tty: true
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
client:
build:
dockerfile: Dockerfile.dev
context: ./client
volumes:
- /app/node_modules
- ./client:/app
ports:
- 3000:3000如您所述,从上面我们得到了各种组件:
以下是我对每个组成部分的建议:
MySQL数据库
Nginx负载平衡器
客户端应用程序
API服务器
Dockerfile,以便成功地构建和推送它。circle ci中使用相同的Dockerfile,您可以按照以下方式编辑docker-compose.yml配置build_and_push_image:
jobs:
- aws-ecr/build-and-push-image:
region: AWS_REGION
dockerfile: Dockerfile.dev
path: ./api
account-url: AWS_ECR_ACCOUNT_URL
repo: 'article-ecr-jpskgc'
tag: '${CIRCLE_SHA1}'Things to Note
我的答覆不包括:
你必须做的事情:
docker-compose.ymlhttps://stackoverflow.com/questions/57341017
复制相似问题