Help us understand the problem. What is going on with this article?

localstack を Docker on Mac 上で動かす

More than 1 year has passed since last update.

Docker on Mac のインストール

https://docs.docker.com/docker-for-mac/install/ から入手できます。
このドキュメントにしたがって、インストールします。

localstack パッケージの更新

pip でインストールしたパッケージは少し前まで、docker イメージが atlassianlabs/localstack になっていましたが、最近になって localstack/localstack に変更されています。

localstack パッケージは 最新版に更新しておいた方がよいでしょう。

pip install -U localstack

localstack を Docker on Mac 上で起動

Docker on Mac が動くようになったら、localstack--docker オプションをつけて起動します。
このとき、Docker for Mac の設定の Proxies のところで No proxy を選択して、プロキシを使用にないようにしておくことを推奨します。

$ localstack start --docker

docker イメージを自動的にダウンロードして、コンテナが起動されます。

Ready. が表示されれば、ローカル起動と同じように使用できます。

docker run で起動していますので、Ctrl-P Ctrl-Q でデタッチできます。

停止するときは、docker ps -a でコンテナIDを確認して、

docker stop コンテナID

で停止します。

再開するときは、

docker restart コンテナID

です。

localstack start --docker を実行すると、もうひとつ新しいコンテナを作ってしまいます。

WARNING:infra.pyc:Service "kinesis" not yet available, retrying... のあとエラーになる場合

Docker コンテナで起動したとき、次のようなエラーが出ることがあります。

WARNING:infra.pyc:Service "kinesis" not yet available, retrying...
ERROR:infra.pyc:Error checking state of local environment (after some retries): Traceback (most recent call last):
File "/opt/code/localstack/localstack/services/infra.py", line 285, in check_infra
raise e
TypeError: 'NoneType' object has no attribute '__getitem__'
Traceback (most recent call last):
File "bin/localstack", line 79, in <module>
infra.start_infra()
File "/opt/code/localstack/localstack/services/infra.py", line 359, in start_infra
raise e
TypeError: 'NoneType' object has no attribute '__getitem__'

このようなときは Docker for Mac の設定の Proxies のところで No proxy を選択して、プロキシを使用にないようにしてみてください。

プロキシを使う設定なっていると、Docker 内で起動した localstack がモックサーバの起動チェックをするときに、プロキシ経由でアクセスして、チェックに失敗することがあります。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away