Ignition inductive automation開発のためのマルチDB環境をDokerで構築する
Ignition inductive automationは様々なDBと接続して簡単に運用ができるとため、複数開発案件に携わると何種類ものDB環境の構築が必要になります。
Ignition inductive automationに限った話ではないとは思いますが、マルチDB環境をDokerで構築していきたいと思います。
Microsoft SQL Server
Docker のイメージは microsoft/mssql-server - Docker Image | Docker Hub にあります。

2022,2019,2017 のイメージもあります。ここでは通常のPullをしてききます。
docker pull mcr.microsoft.com/mssql/server
PowerSherllで上記のコマンド実行します。

最新のMSSqlがPullできました。
Desktop側でも確認できます。

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Password@1234" -p 1433:1433 --name sql1 --hostname sql1 -d mcr.microsoft.com/mssql/server:2022-latest
SA のパスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。
上記のコマンドをPowerSherllで実行します。

成功したみたいです。
SQL Server Management Studio で接続できるか確認します。

host側からの接続はできました。この後、コンテナ間の接続を可能にする設定が必要だと思われます。
Ignition とMS SQL ServerをDocker Composeで構築する
Docker ComposeにIgnitionとSQL Serverを構築して接続できるようにします。
docker-compose.yml を以下のようにします。Docker Compose V2では、「version:」は不要になりました。
services:
ignition_pe:
image: inductiveautomation/ignition:8.1.36
ports:
- "8098:8088"
environment:
- ACCEPT_IGNITION_EULA=Y
volumes:
- ./Ignition-backup-pe.gwbk:/restore_pe.gwbk
command: >
-n Ignition-gateway-pe
-r /restore_pe.gwbk
ignition_uns:
image: inductiveautomation/ignition:8.1.36
ports:
- "8099:8088"
environment:
- ACCEPT_IGNITION_EULA=Y
volumes:
- ./Ignition-backup-uns.gwbk:/restore_uns.gwbk
command: >
-n Ignition-gateway-uns
-r /restore_uns.gwbk
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: sql-server-2022-express
ports:
- 1433:1433
environment:
- ACCEPT_EULA=Y
env_file:
- sql-server-2022.env
volumes:
- ./DB/DATA:/var/opt/mssql/data
- ./DB/LOG:/var/opt/mssql/log
- ./DB/secrets:/var/opt/mssql/sec
volumes:
ign_data:
次に、sql-server-2019.env を作成する
# saアカウントのパスワード
SA_PASSWORD=Password@1234
# SQL Server のエディション(Express版に設定)
MSSQL_PID=Express
# ロケール設定(日本語を選択)
MSSQL_LCID=1041
# 日本語の判定設定
MSSQL_COLLECTION=Japanese_CI_AS
# タイムゾーン設定
TZ="Asia/Tokyo"
# SQL Agentサービスの使用可否
MSSQL_AGENT_ENABLED="true"
PowerSherllで以下を実行する。
docker compose up -d --build
実行後の表示は以下のようになりました。

コンテナの実行状況は以下。正常に起動しました。
