728x90
ECR에 이미지를 Push하거나 할때 AWS Configure가 미리 선행되어 있어야 한다. Gitlab CI는 관련한 Action을 이미 정형화 해서 서비스 제공을 하는데...
1. AWS IAM에서 사용자를 추가한다. 그리고 Access Token을 발행한다.
2. 위 사용자에 Policy를 부여한다.
해당 Poilcy는 아래의 JSON과 같이 정의한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:CompleteLayerUpload",
"ecr:GetAuthorizationToken",
"ecr:UploadLayerPart",
"ecr:InitiateLayerUpload",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage"
],
"Resource": "*"
}
]
}
3. 해당 Repository의 Settings - CI/CD - Variables에 아래의 내용을 등록한다.
AWS_ACCESS_KEY_ID | Your Access key ID. |
AWS_SECRET_ACCESS_KEY | Your secret access key. |
AWS_DEFAULT_REGION | Your region code |
4. 그 다음 gitlab-ci.yml에서
아래와 같이 Gitlab에서 이 기능을 위해 제공하는 Image만 잘 사용하면 된다.
build-push-docker:
stage: build
image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
script:
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $DOCKER_REGISTRY
- docker push $DOCKER_REGISTRY/$APP_NAME:$CI_PIPELINE_ID
'PaaS > CI CD' 카테고리의 다른 글
Gitlab Runner ) Kubernetes에 scaling Runner 배포하기 (0) | 2024.12.10 |
---|---|
DockerHub Rate Limit 정책 그리고 이슈 (0) | 2024.08.03 |
Github Actions) 나의 Github 계정에서 수행된 Actions History를 모두 수집해보자 (1) | 2024.03.03 |
Github Actions) Workflow 자동실행 조건에 Tag와 Branch 모두 걸기 (0) | 2024.02.20 |
Github Actions) 성능제고를 위한 방안 cache (0) | 2024.02.20 |