AWS ECR 4

로컬에서 AWS Elastic Container Registry로 Docker 이미지 push하기

AWS 콘솔 화면에서 View push commands로 확인할 수 있지만 일단 메모. # Docker 로그인 $ aws ecr get-login-password --region {region} --profile {profile_name} | docker login --username AWS --password-stdin {account_id}.dkr.ecr.{region}.amazonaws.com # 컨테이너 만들기 $ docker build -t {local_image_name} -f path/to/Dockerfile . $ docker tag {local_image_name}:{tag} {account_id}.dkr.ecr.{region}.amazonaws.com/{remote_container_n..

AWS 노트 2023.07.18

Docker 컨테이너를 AWS ECR 에 작성한 이미지로 build 하기 (SageMaker training job)

디렉토리 구조 새로운 컨테이터를 빌드할 때에는 base 가 필요하다. (굳이 base 를 나눌 필요는 없지만 나누는 편이 깔끔한 것 같다) /your_repository ├── lib │ ├── build_and_push.sh │ ├── deploy.sh │ └── create_training_job.py └── containers ├── {image} │ └── sub_directory │ │ ├── train │ │ ├── wsgi.py │ │ ├── nginx.conf │ │ └── some_processer.py │ └── Dockerfile └── {image}-base └── Dockerfile build_and_push.sh 수정 전 원래 코드: awslabs/amazon-sagemaker-..

AWS 노트 2020.07.15

Docker이미지를 push할 때 Error response from daemon: No such image: {image}:{tag} 에러가 나면서 실패할 때

제목에 적은 에러 문구 위에 아래와 같은 에러가 나 있을 것이다. unable to prepare context: unable to evaluate symlinks in Dockerfile path: Dockerfile 에 FROM {account_id}.dkr.ecr.{region}.amazonaws.com/{base_image}라고 적었을텐데(본인이 적지 않았다면 적혀 있을텐데) 이 {base_image}부터 build & push 하지 않으면 push 하고 싶은 {image}도 push 가 안된다. {base_image}도 없다고 나온다면 AWS ECR 에 새롭게 작성한다. $ aws ecr create-repository --repository-name {base_image} {base_image..

AWS 노트 2020.07.13

An image does not exist locally with the tag: {account_id}.dkr.ecr.{region}.amazonaws.com/{image} 에러가 날 때

먼저 AWS Elastic Container Registry (이하 ECR) 에 {image}라는 repository 가 있는지 확인한다. $ aws ecr describe-images --repository-name {image} 없다면 만든다. $ aws ecr create-repository --repository-name {image} local 에 {image} 가 없어서 에러가 나는 것이므로 local 에 {image} 를 pull 한다. $ docker pull {account_id}.dkr.ecr.{region}.amazonaws.com/{image}:{tag} 보통 태그는 latest를 붙여서 가져온다.

AWS 노트 2020.07.13