我不确定我的 ci/cd 配置文件是否正确 实际上我尝试了很多方法,但它仍然在 gitlab pipline 处返回日志
aws: not found
这是我的 .gitlab-ci.yml 文件
image: amazon/aws-cli:latest
stages:
- build
- deploy
variables:
AWS_DEFAULT_REGION: "ap-northeast-2"
AWS_ECR_REGION: "us-east-1"
ECR_REGISTRY: "public.ecr.aws/{here_id}"
AWS_ACCESS_KEY_ID: "access_key"
AWS_SECRET_ACCESS_KEY: "secret_key"
before_script:
- aws ecr-public get-login-password --region $AWS_ECR_REGION | docker login --username AWS --password-stdin $ECR_REGISTRY
build:
stage: build
image: docker:latest
script:
- docker build -t frontend_repo .
- docker tag frontend_repo:latest $ECR_REGISTRY/frontend_repo:latest
- docker push $ECR_REGISTRY/frontend_repo:latest
only:
- main
deploy:
stage: deploy
image: docker:latest
script:
- docker stop frontend_container
- docker rm frontend_container
- docker rmi $ECR_REGISTRY/frontend_repo:latest
- docker pull $ECR_REGISTRY/frontend_repo:latest
- docker run -t -d -p 80:3000 --restart unless-stopped --name frontend_container $ECR_REGISTRY/frontend_repo:latest
- docker logs -f frontend_container
主要目标是连接到 AWS -> 构建 Docker 镜像并将其推送到 AWS ECR -> 在 EC2 实例上拉取并运行 docker 容器乍一看,脚本似乎是正确的,但即使使用 amazon/aws-cli 图像作为执行环境,我也无法连接到 AWS
有人可以检查可能存在的问题吗? 所需的变量已添加到 GitLab CI/CD 变量中
export AWS_ACCESS_KEY_ID=$VARIABLE_NAME_SAVED_IN_GITLABCI_SETTINGS
export AWS_SECRET_ACCESS_KEY=$VARIABLE_NAME_SAVED_IN_GITLABCI_SETTINGS
在 aws 登录之前的构建阶段我还在构建阶段使用了 amazon/aws-cli 镜像,然后我将安装 docker
还需要一个像 docker:dind 这样的服务,以便在构建阶段在 aws 镜像中使用它