Docker

docker-compose を使わずにDocker環境を構築します。

以下の内容のDockerfileを作成します。

FROM localstack/localstack:2.0.2

Dockerfileがあるディレクトリで以下を実行して、Dockerイメージを作成します。

docker build -t localstack .

以下を実行して、コンテナを起動します。

docker run -itd -p 4566:4566 -v G:\docker\localstack:/docker  --name localstack localstack /bin/bash
注意 オプションvで指定しているのは共有ディレクトリで、これはWindows用の設定になります。

動作確認

LocalStackが正常動作しているかの確認は、ヘルスチェックを使うか、LocalStackコマンドを使う方法があります。

ヘルスチェック

LocalStackのヘルスチェックは以下で実行できます。

curl http://localhost:4566/health | jq
注意 これは結果のJSONを整形するため、jqコマンドを使っています。

正常だと以下のような有効サービスの一覧がJSON形式で返ってきます。

{
  "services": {
    "acm": "available",
    "apigateway": "available",
    "cloudformation": "available",
    "cloudwatch": "available",
    "config": "available",
    "dynamodb": "available",
    "dynamodbstreams": "available",
    "ec2": "available",
    "es": "available",
    "events": "available",
    "firehose": "available",
    "iam": "available",
    "kinesis": "available",
    "kms": "available",
    "lambda": "available",
    "logs": "available",
    "opensearch": "available",
    "redshift": "available",
    "resource-groups": "available",
    "resourcegroupstaggingapi": "available",
    "route53": "available",
    "route53resolver": "available",
    "s3": "available",
    "s3control": "available",
    "secretsmanager": "available",
    "ses": "available",
    "sns": "available",
    "sqs": "available",
    "ssm": "available",
    "stepfunctions": "available",
    "sts": "available",
    "support": "available",
    "swf": "available",
    "transcribe": "available"
  },
  "version": "2.0.2"
}

LocalStackコマンド

以下のLocalStackコマンドで有効サービスが確認できます。

localstack status services
公式のDockerイメージを使っていて、そのコンテナ内にいる場合は、localstackコマンドのパスが無いので、以下を実行します。
/opt/code/localstack/bin/localstack status services

実行結果は以下のようになります。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service                  ┃ Status      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm                      │ ✔ available │
│ apigateway               │ ✔ available │
│ cloudformation           │ ✔ available │
│ cloudwatch               │ ✔ available │
│ config                   │ ✔ available │
│ dynamodb                 │ ✔ available │
│ dynamodbstreams          │ ✔ available │
│ ec2                      │ ✔ available │
│ es                       │ ✔ available │
│ events                   │ ✔ available │
│ firehose                 │ ✔ available │
│ iam                      │ ✔ available │
│ kinesis                  │ ✔ available │
│ kms                      │ ✔ available │
│ lambda                   │ ✔ available │
│ logs                     │ ✔ available │
│ opensearch               │ ✔ available │
│ redshift                 │ ✔ available │
│ resource-groups          │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53                  │ ✔ available │
│ route53resolver          │ ✔ available │
│ s3                       │ ✔ available │
│ s3control                │ ✔ available │
│ secretsmanager           │ ✔ available │
│ ses                      │ ✔ available │
│ sns                      │ ✔ available │
│ sqs                      │ ✔ available │
│ ssm                      │ ✔ available │
│ stepfunctions            │ ✔ available │
│ sts                      │ ✔ available │
│ support                  │ ✔ available │
│ swf                      │ ✔ available │
│ transcribe               │ ✔ available │
└──────────────────────────┴─────────────┘