📝
Azure SignalR ServiceのエミュレーターをDockerで動かした
昨日書いたAzure SignalR ServiceのローカルエミュレーターをDockerで動かしてみた。
Dockerfile
はこんな感じ。
FROM mcr.microsoft.com/dotnet/sdk:3.1
RUN dotnet tool install -g Microsoft.Azure.SignalR.Emulator --version 1.0.0-preview1-10723 --add-source https://www.myget.org/F/azure-signalr-dev/api/v3/index.json
ENV PATH="$PATH:/root/.dotnet/tools"
WORKDIR /work
ENTRYPOINT ["asrs-emulator", "start", "-i", "0.0.0.0"]
ポイントは2つ
-
/work
をカレントディレクトリにしてる。なのでここをボリュームマウントしてupstreamの設定ファイルを置く感じ。 - 待ち受けるIPを
0.0.0.0
にしてる。デフォルトのlocalhost
だとホストOS側からはつながらない。
IPを0.0.0.0
にしてる関係上、コンソールには次のように表示されるけど、0.0.0.0
のところはlocalhost
と読み替えてプログラムから使いましょう。
===================================================
The Azure SignalR Emulator was successfully started.
Press Ctrl+C to stop the Emulator.
Use the below value inside *********** block as its ConnectionString:
***********
Endpoint=http://0.0.0.0;Port=8888;AccessKey=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGH;Version=1.0;
***********
===================================================
これで、Azuriteとともに、docker-composeとかで一発で立ち上がるようにしておくとだいぶ便利。
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite
ports:
- 10000:10000
command: "azurite-blob --blobHost 0.0.0.0 --blobPort 10000"
signalremu:
container_name: signalr-emu
build:
context: ./signalr-emu
dockerfile: Dockerfile
ports:
- 8888:8888
volumes:
- ./signalr-emu/config:/work
あとはAzure Cosmos DB EmulatorがWindowsオンリーから脱却してくれれば・・・。
Discussion