概要
aws-cliコマンドが使えるコンテナを用意してみる。
前提条件
- macOS
- Docker Toolbox ( Docker for mac )
ファイル構成
下記のようなファイルを作成します。
ファイル構成
opt
├ docker
│ └ aws-cli
│ └ Dockerfile
└ docker-compose.yml
Dockerfile作成
aws-cliコマンドが使えるコンテナを構築するファイルです。
docker/aws-cli/Dockerfile
# AWS ドキュメント - AWS CLI のインストール
# https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html
FROM python:3.6
ARG pip_installer="https://bootstrap.pypa.io/get-pip.py"
ARG awscli_version="1.16.236"
# create local bin directory
RUN mkdir -p /root/.local/bin
ENV PATH $PATH:/root/.local/bin
# install aws-cli
RUN pip install --user --upgrade awscli==${awscli_version}
# install sam
RUN pip install --user --upgrade aws-sam-cli
# install command.
RUN apt-get update && apt-get install -y less vim
WORKDIR /root
docker-compose.yml作成
下記の内容で作成します。
docker-compose.yml
version: '3'
services:
aws-cli:
container_name: 'aws-cli'
image: aws-s3/aws-cli
build:
context: ./
dockerfile: ./docker/aws-cli/Dockerfile
tty: true
environment:
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_DEFAULT_REGION: ap-northeast-1
AWS_DEFAULT_OUTPUT: json
サーバ構築
下記コマンドにてdockerコンテナのイメージを構築します。
ターミナル
$ docker-compose build
AWSの環境設定
下記のように環境変数を定義します。
※ ここで定義した環境変数は、自動的にdockerコンテナに取り込まれます
ターミナル
$ export AWS_ACCESS_KEY_ID='xxxxxxxxxxxxx'
$ export AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxx'
awsコマンド実行
下記コマンドにて実行し、aws-cliコンテナに接続して利用します。
※ exitしたらコンテナは、破棄される作りとなっています。
ターミナル
# aws-cliコンテナ起動&接続
$ docker-compose run --rm aws-cli bash
$ aws --version
exitしてもaws-cliコンテナを破棄したくない場合は、下記のコマンドで実行します。
ターミナル
# コンテナをデーモン起動
$ docker-compose up -d
# aws-cliコンテナへ接続
$ docker-compose exec aws-cli bash
...
$ exit <- aws-cliの接続を解除してもコンテナは起動したままです
以上