AWS
投稿日

【docker】localstack S3 バケット作成

docker起動時にlocalstackのS3バケットを作成させてみます。

簡単なlocalstackの説明は前回を参考にして下さい。

コンテナ作成

準備

今回のdocker-compose.ymlは以下の通りです。

version: "3.8"

services:
  localstack:
    container_name: "sample_localstack_01"
    image: localstack/localstack:latest
    ports:
      - 4567:4566 # LocalStack Gateway
    environment:
      - SERVICES=s3
    volumes:
      # 配置したスクリプトが起動時に自動実行される
      - ./boot:/etc/localstack/init/ready.d

起動時に実行されるスクリプト

コンテナ内の以下のディレクトリにシェルスクリプトを配置すると自動で実行してくれます。

/etc/localstack/init/ready.d

今回はホスト側は boot というディレクトリへマウントさせています。
従って、bootディレクトリにシェルスクリプトを配置しておけば、docker起動時にシェルスクリプトが実行されます。

シェルスクリプト

bootディレクトリ以下にシェルスクリプトを配置します。
内容はS3バケットを作成するコマンドを記載します。
なお、awslocalコマンドはlocalstackで使用するaws cliのラッパーみたいなもの(正確には違うかも)です。

#!/bin/bash
awslocal s3 mb s3://localstack-bucket

確認

コンテナを起動します。

docker-compose up

バケットが作成されている事を確認します。

aws s3 ls --endpoint-url=http://localhost:4567 --profile localstack

コメントを残す

メールアドレスが公開されることはありません。

© DeNnie.Lab All Rights Reserved.