개인 Gitlab을 내 컴퓨터에서 호스팅하고 있습니다. 내 코드를 Gitlab에 저장하고 Dockerfile에서 Docker 이미지를 만들고 나서 Amazon ECR 레지스트리에 푸시하고 싶습니다.Gitlab-CI에서 Amazon AWS로 도커 이미지 작성 및 푸시 ECR
가 login-ecs.sh 스크립트가 단순히eval $(/usr/local/bin/aws ecr get-login --region eu-central-1)
를 실행
stages:
- build
build_airflow:
stage: build
only: [master, develop]
image: gitlab/dind:latest
services:
- docker:dind
script:
- APP=airflow
- sh ./scripts/login-ecs.sh my_fancy_project
, 로그인을해야하는 :
이Flag --email has been deprecated, will be removed in 1.13.
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
/dev/mapper/control: open failed: Operation not permitted
Failure to communicate with kernel device-mapper driver.
Check that device-mapper is available in the kernel.
Command failed
mount: permission denied
Could not mount /sys/kernel/security.
AppArmor detection and --privileged mode might break.
mkdir: cannot create directory '/sys/fs/cgroup/name=systemd': Read-only file system
mount: mount point /sys/fs/cgroup/name=systemd is not a directory
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Read-only file system
Timed out trying to connect to internal docker host.
gitlab-CI 코드는 다음과 같습니다 : 그것은 오류가 발생하기 때문에 불행하게도,이 작동하지 않습니다 이미지를 ECR 도커 레지스트리 (소스 : https://blog.madisonhub.org/gitlab-ci-build-how-to-login-to-ecr/)로 보냅니다.
문제를 찾을 수 없으므로 도와 주시면 감사하겠습니다.
미리 감사드립니다.
PS : 로컬로 aws ecr get-login
에서 명령을 실행하면 정상적으로 작동합니다. 그래서 그것은 gitlab을 가지고 뭔가를해야만합니다. 개인 레지스트리 로그인이 허용되는 일부 구성을 변경해야합니까?