2018年7月5日木曜日

Dockerでlocalstack、awscliをインストールしたコンテナを構築する

localstackはローカルで動作するAWSテスト・モック環境です。

〇構築方法
1.以下のコマンドで、awscliがインストールされたイメージを作成します。
docker build -t awscli .

Dockerfile
FROM python:3.6-alpine3.7

RUN mkdir /work \
  && pip install awscli
VOLUME /work
WORKDIR /work
CMD ["/bin/sh"]

2.以下のコマンドで、localstackのS3サービスを起動しawscliが実行可能なコンテナに入ります。
docker-compose run awscli

docker-compose.yml
version: "2"
services:
  localstack:
    image: atlassianlabs/localstack
    container_name: "storage"
    ports:
      - "4572:4572"
    environment:
      - SERVICES=s3
      - HOSTNAME=localstack
  awscli:
    image: awscli
    container_name: "awscli"
    command: /bin/sh
    stdin_open: true
    tty: true
    volumes:
      - ".:/work"
    ports:
      - "80:80"
    depends_on:
      - localstack

3.awscliコンテナ内でのコマンド実行例

〇awsコマンド実行前に以下を実行
export AWS_ACCESS_KEY_ID=test_access_key
export AWS_SECRET_ACCESS_KEY=test_secret_key

〇バケットの作成
aws --endpoint-url http://<Dockerホスト名またはIP>:4572/ s3 mb s3://testbucket1

〇ローカルファイルをコピー
aws --endpoint-url http://<Dockerホスト名またはIP>:4572/ s3 cp ファイル名 s3://testbucket1

〇バケット内の一覧表示
aws --endpoint-url http://<Dockerホスト名またはIP>:4572/ s3 ls s3://testbucket1


○関連情報
・localstackに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿