curl -O http://www.arch.cs.titech.ac.jp/~kise/nq/package/qn24b-version1.0.tgz
tar -zxvf qn24b-version1.0.tgz
gcc -O2 version1.0/base/queens.c -o queens
./queens 16
# 出力例
# qn24b base version 1.0.1 2004-09-02
# =============================================
# qn24b base version 1.0.1 2004-09-02
# problem size n : 16
# total solutions : 14772512
# correct solutions : 14772512
# million solutions/sec : 2.747
# elapsed time (sec) : 5.378
# =============================================
Dockerfile
というファイルを作成します。画面下部のターミナルでは、vi などのエディタを使用することもできます。ターミナルの操作に慣れている方はそちらでもお試しできます。
cloud9-env01
を右クリックします。Dockerfile
と入力し、エンターキーで確定します。FROM amazonlinux:latest
COPY ./queens /usr/local/bin/queens
# program execute
CMD /usr/local/bin/queens 16
docker build -t queens .
docker images --filter reference=queens # コンテナイメージの存在を確認
docker run queens # コンテナの起動
aws ecr create-repository --repository-name queens
# 出力例
# {
# "repository": {
# "repositoryUri": "xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens",
# "imageScanningConfiguration": {
# "scanOnPush": false
# },
# "registryId": "xxxx",
# "imageTagMutability": "MUTABLE",
# "repositoryArn": "arn:aws:ecr:ap-northeast-1:xxxx:repository/queens",
# "repositoryName": "queens",
# "createdAt": 1581057736.0
# }
# }
repositoryUri
の値 (xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens
) はあとで使用します。xxxx
の部分を置き換えてから実行します。docker tag queens xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens
aws ecr get-login-password
コマンドを使用して、レジストリ用の Docker login 認証コマンド文字列を取得します。こちらもxxxx
の部分を置き換えてから実行します。aws ecr get-login-password | docker login --username AWS --password-stdin xxxx.dkr.ecr.ap-northeast-1.amazonaws.com
# 出力例
# WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json.
# Configure a credential helper to remove this warning. See
# https://docs.docker.com/engine/reference/commandline/login/#credentials-store
#
# Login Succeeded
aws ecr get-login-password
コマンドによって12時間有効な認証トークンが発行され、それを標準入力経由で docker login
コマンドに渡してログインしています。
xxxx
の部分を置き換えてから実行します。docker push xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens
# 出力例
# The push refers to repository [xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens]
# 42fa032701d4: Pushed
# d347cbb1a81e: Pushed
# latest: digest: sha256:ebc273ee2173fb76c976c3317fa5887c223424b5fa6527aa02cdcb19f4786cf2 size: 737
xxxx
の部分を置き換えてから実行します。docker rmi xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens # ローカルのキャッシュを削除します
docker run xxxx.dkr.ecr.ap-northeast-1.amazonaws.com/queens