またーり くおんつ ノート

お勉強した初歩的なことを書くチラシの裏

AWS ECS/ECRをいじってみる day6

awscliからリポジトリを作って消す.

docs.aws.amazon.com

基本的にはこちらの

  • step 3
  • step 7

をやるぞぃ.

リポジトリを作る

$ aws ecr create-repository --region us-east-2 --repository-name ubuntu
{
    "repository": {                                                              
        "repositoryArn": "arn:aws:ecr:us-east-2:XXXXXX:repository/ubuntu", 
        "registryId": "XXXXXX",  
        "repositoryName": "ubuntu",
        "repositoryUri": "XXXXXX.dkr.ecr.us-east-2.amazonaws.com/ubuntu",  
        "createdAt": YYYYYYY  
    }                                                
} 

でけた.

ブラウザからも一応見てみると、ちゃんと追加されている.
簡単ですね.

リポジトリを消す

$ aws ecr delete-repository --region us-east-2 --repository-name ubuntu --force                                               │
{                                                                                
    "repository": {                                                              
        "repositoryArn": "arn:aws:ecr:us-east-2:XXXXXX:repository/ubuntu", 
        "registryId": "XXXXXX",                                            
        "repositoryName": "ubuntu",                                              
        "repositoryUri": "XXXXXX.dkr.ecr.us-east-2.amazonaws.com/ubuntu",  
        "createdAt": YYYYYY                                                
    }                                                                            
} 

これで綺麗さっぱり消える.
–forceオプションはリポジトリにイメージが存在しても強制的にリポジトリを消滅させるので、 分かった上で使わないとね.

この辺りは特にハマることなく終了.
day6とかになってきたし、ちょうどキリが良いので、来週からはお題を変えよう.

AWS ECS/ECRをいじってみる day5

公式のExampleのDockerfileを手元でビルドしておいて、imageをECRにpushするぞ.

docs.aws.amazon.com

docker imagesのbuild

昨日のdocker loginコマンドで出てくる名前を使って、image自体にtag付けする必要があるっぽい.
一応アカウントIDとregionを組み合わせた名前のようだ.

$ docker build -t XXXXXXX.dkr.ecr.us-east-2.amazonaws.com/amazon-ecs-sample . 

ちゃんとビルドされたか一応見てみると

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE                      
XXXXXXX.dkr.ecr.us-east-2.amazonaws.com/amazon-ecs-sample  latest 48ff9f3a8dd0 24 hours ago  227MB  ubuntu  12.04        5b117edd0b76  4 months ago  104MB

となっており、ちゃんとイメージはできてる.
(ローカルだけど)

ECRにpush

docs.aws.amazon.com

ログイン認証は12時間以内なので再度実施.
(やらないとToken has expiredと怒られた.)

$(aws ecr get-login --region us-east-2 --no-include-email)
Login Succeeded
$ docker push XXX.dkr.ecr.us-east-2.amazonaws.com/amazon-ecs-sample:latest 
name unknown: The repository with name 'amazon-ecs-sample' does not exist in the registry with id 'XXX' 

あれれー

aws consoleのリポジトリ設定でimageのtagをちゃんと合わせてないとダメなのね…
というわけで再度リポジトリ設定.

リポジトリ名をビルドしたdocker imageに合わせてamazon-ecs-sampleと設定して、push

$ docker push XXX.dkr.ecr.us-east-2.amazonaws.com/amazon-ecs-sample:latest

お、ちゃんとpushされてlayerごとにuploadされている様子が見れたー.

ブラウザのECRのページからもリポジトリにimageがpushされていることが確認できたぞぃ.

次何するかと↓を眺めてると、リポジトリもawscliで作ってることに気づく… docs.aws.amazon.com

ブラウザからGUIベースでやってしまった!!

明日はawscliからのリポジトリ作成・削除をやろう…

AWS ECS/ECRをいじってみる day4

aws-cliがキチンと入ってなかったので修正.

アホの一つ覚えのように入れてしまったbrewでのawscliは悪さすると嫌なのでuninstall.

$ brew uninstall awscli

普通にanacondaでawscliは入れているのでpipで入る場所を確認したら /anaconda/bin/ にawsがいるっぽい.

うーん、~/.bash_profileを見ると、pathは通してあるぞ?

ここで、もう一度、 .bash_profileを実行し直す必要があることに気づく.

$ source ~/.bash_profile

再度awsにpathが通っているか見ると…

$ aws --version                  
aws-cli/1.11.130 Python/3.6.1 Darwin/15.2.0 botocore/1.5.93 

上手くいったみたい、超初歩的ミスでした…

これで昨日上手くいかなかったやつをやってみると、、、

$ $(aws ecr get-login --region us-east-2 --no-include-email) 
Login Succeeded 

よかったよかった. なお、やはり –no-include-email は必要な模様.