Docker push AWS ECR 編

色々な編ができていく・・・

ずっとはまっていてもダメなので、ちょっとGitLabからのPullはどこかで質問することにします。
そして、AWS ECS で pull するのであれば、当然相性良いだろうと思われる、ECR にpushしてみます。
イメージのプッシュ
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-push-ecr-image.html

もうpushするimageはできているところからスタートします。
Docker 環境をステージング環境へ(Docker push編)
https://www.programmers-office.ml/2019/01/14/docker-%E7%92%B0%E5%A2%83%E3%82%92%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E7%92%B0%E5%A2%83%E3%81%B8%EF%BC%88docker-push%E7%B7%A8%EF%BC%89/

python環境

pushするためには、まず1.の認証が必要です。
そのために、AWS CLIのインストールが必要です。
まあ、そうなんだろうけど面倒は面倒ですね。どんどん遡る・・・
結局、開発環境をDockerで作るとしても、それを扱うための環境(ここで言えばpython環境)をローカルに作らなければいけない。もう少しローカル依存を減らしたいのですが・・・
AWS CLI をインストールする方法
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html
おもむろに

$ pip install awscli –upgrade –user

を叩くと、「pip: command not found」のつれないメッセージ。

$ python -m pip -V
/usr/bin/python: No module named pip

そこからか・・・

python3

そもそも、macの初期インストールpythonは

python –version
Python 2.7.10

です。
pipはPython 3.4以降には、標準で付属しているそうです。
Python3系を入れましょう。
Code4Startupの時は、普通にインストーラーをダウンロードする形でしたが、今時だとやはり、Homebrewでしょうか。
https://brew.sh/index_ja.html
インストールのスクリプトを素直に実行。
インストール完了後、

$ brew doctor
Your system is ready to brew.

珍しく、すんなりインストールされました。

次に、pythonをどのように入れるか、こちらが参考になります。
Python3インストール(Mac編)
https://qiita.com/ms-rock/items/72b8f1abc661c539bb09
いくつか方法がありますが、「2.3. Homebrew + pyenvでのインストール方法」に従います。
現時点で最新は3.7.2ですので、

pyenv install 3.7.2

を叩きますと、インストールされていきますが、最後
zipimport.ZipImportError: can’t decompress data; zlib not available
というエラーを吐いています。
そこで、
https://qiita.com/zreactor/items/c3fd04417e0d61af0afe
を参考に、

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

そして、もう一度、pyenv install 3.7.2・・・OK。
この時点では

$ python –version
Python 2.7.10

$ pyenv global 3.7.2
$ pyenv versions
* system (set by /Users/aaa/.pyenv/version)
3.7.2

良し!と思うも、

$ python –version
Python 2.7.10

あれ。いったん、ターミナル終了して再度。

$ python –version
Python 3.7.2

・・・そういうもの?

AWS CLI

pipも使えるようになったので、

pip install awscli –upgrade –user

色々動いて、インストールされたようです。

さらに、
AWS CLI 実行ファイルをコマンドラインパスに追加する
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-macos.html#awscli-install-osx-path
では、パスの確認方法が書いてありますが、それでは確認できず、

$ pip show awscli
/Users/aaa/.local/lib/python3.7/site-packages

ということが分かりますので、
vi .bash_profile
→追記:port PATH=~/.local/lib/python3.7/site-packages:$PATH
としても、反応なし。
結論としては、追記は
export PATH=~/.local/bin:$PATH
何のためにパスの確認をしたのか・・・

$ aws –version
aws-cli/1.16.92 Python/3.7.2 Darwin/18.2.0 botocore/1.12.82

となりました。

Amazon ECR 認証

レジストリの認証
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/Registries.html

$ aws ecr get-login –no-include-email
You must specify a region. You can also configure your region by running “aws configure”.

ということで、先にこちら。
AWS CLI の設定
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html

そして、そのためには
最初の IAM 管理者のユーザーおよびグループの作成
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/getting-started_create-admin-group.html

「管理者 IAM ユーザーおよびグループの作成 (コンソール)」まででよいのかな・・・

で、今度はaws ecr get-login –no-include-emailでログインコマンドが出力されるので、それをコピペして実行すると

WARNING! Using –password via the CLI is insecure. Use –password-stdin.
Login Succeeded

となります。

リポジトリにイメージ登録

この状態で手順の2.でリポジトリを作っておき、4.でpush。
リポジトリ作る時にリージョン指定間違えないように(間違えました)。

さあ、これならpullできるでしょう!(続く)