Dockerを知らなくてもWindowsでLocalStackしたい！

# 前書き
Windowsを使用していてDockerのことはよくわからないが、とりあえず素早くLocalStackを使ってみたいという方向けの手順です。（自己紹介）
自力でdocker-composeする場合と比べるとEnvironmentによる設定ができないため好みの動作にカスタマイズできませんが、
とりあえずは使えます。

# 前提条件
* Windows11
* Python 3.xがインストール済
* awscliがインストール済
* venvで仮想化しておいたほうがトラブルが少ないと思う

# 以下手順
### １．Windowsの機能の有効化
Powershellコンソールを管理者で起動して下のコマンド実行する。
1コマンドで必要なものをすべてまとめて入れてくれる便利なコマンドです。
必要なものと今は必要ではないものが入るが、必要ではないものは気にしない。
~~~ powershell
wsl --install
~~~
コマンド実行後に再起動を求められたら再起動する。

### ２．Pythonパッケージ「localstack」をインストールする
とりあえず動かすには必須。
~~~
pip install localstack
~~~

### ３．Pythonパッケージ「awscli-local」をインストールする
~~~
pip install awscli-local
~~~

### ４．Docker Desktopインストール
https://www.docker.com/products/docker-desktop/

ここの「Also available for Windows and Linux」のWindowsをクリックするとダウンロードできる
ダウンロードしたらダイアログの選択肢は変更せずにインストールする
再起動を求められなくても再起動をしたほうが良い

### ５．LocalStackのDockerイメージを用意する
下のコマンドを実行するとdocker hubからダウンロードしてDocker Desktopに登録されます。
~~~ powershell
docker pull localstack/localstack
~~~

### ６．LocalStack起動
~~~ powershell
localstack start -d
~~~

### ７．LocalStackで利用可能なAWSサービスを確認してみる
~~~ powershell
localstack status services
~~~

### ８．LocalStack用のCLIを実行してみる
~~~ powershell
awslocal ec2 describe-vpcs
~~~

### ９．LocalStack停止
~~~ powershell
localstack stop
~~~

### １０．終了
お疲れ様でした

# トラブルシュート
自分の環境で発生したエラーと解消した方法を記載します。
誰でもこの方法で解決できるわけではないので参考情報としてご参照ください。

## docker pullコマンドでプロキシに関するエラーメッセージが表示される
##### エラーメッセージ例
Error response from daemon: Get "https://registry-1.docker.io/v2/": Failed to lookup host: hogehoge
##### 解決方法
自分の環境ではプロキシを使わずに直通なので以下のように設定して乗り切った。
Docker DesktopのSettingsを開く -> Resources -> Proxies -> Manual proxy configurationをOnにして、
WebServer等のテキストボックスは全て空にしておく。
その後右下の「Apply & Restart」ボタンを押す。

## pip install localstackでパスに関する警告が出た
##### エラーメッセージ例
 WARNING: The script cmark.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script tabulate.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pysemver.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The scripts pyrsa-decrypt.exe, pyrsa-encrypt.exe, pyrsa-keygen.exe, pyrsa-priv2pub.exe, pyrsa-sign.exe and pyrsa-verify.exe are installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script dotenv.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pygmentize.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pbr.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  Running setup.py install for dill ... done
  WARNING: The script chardetect.exe is installed in 'C:\Users\username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
##### 解決方法
下のコマンドを実行して「Location」に表示されたパスを環境変数PATHに追加する。
~~~ powershell
pip show localstack
~~~

##### 原因？
Pythonをall usersでインストールしてあり、
localstackがuserにインストールされていることが原因か。


## awslocalでエラーが出る
##### エラーメッセージ例
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
##### 解決方法
awscliがインストールされていない場合に出た。
公式を参照してインストールする。

https://aws.amazon.com/jp/cli/

## localstack start -dでnot recognizedエラーが出る
##### エラーメッセージ例
localstack: The term 'localstack' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
##### 解決方法
下のコマンドを実行して「Location」に表示されたパスを環境変数PATHに追加する。
~~~ powershell
pip show localstack
~~~