こんにちは。CData Software Japan の色川です。
お客様から「CData Arc をDocker コンテナの上で動かしたいんだけど」という相談を頂くことが増えてきました。
軽量かつ環境構築をコード化できるDocker コンテナは開発・検証環境として便利なのはもちろんですが、優れたオーケストレーションツールも浸透してきている今「これからのアプリケーション基盤の本命」と言えるかも知れません。なにしろ「Docker コンテナでアプリケーション実行環境を用意したい」といった機会は増えていきそうです。
この記事では、CData Arc をDocker コンテナで動作させる方法をご紹介します。
CData Arc
CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。
常時起動・運用される連携基盤としての利用が多いCData Arc の本番環境をDocker コンテナ上で利用するケースはあまり多くはないかも知れませんが、トライアルや開発・検証用の環境はコンテナで用意したいと言うケースは割とありそうです。
この記事で試したDocker 環境
Docker コンテナを動かすプラットフォームは様々かと思いますが、私の場合は「手元の環境に、独立したCData Arc 環境をパパっと立ち上げたい」ことが多いので、この記事ではWindows 10 + WSL2 に用意したUbuntu (20.04 LTS) 環境にDocker を入れて試しています。
Docker コンテナの上で動かす場合の留意点(永続性)
CData Arc は他のツールやミドルウェアへの依存性が少ない軽量なアプリケーション構成となっており、比較的シンプルにDocker コンテナの上で動かすことができます。
CData Arc は軽量なファイルベースのアプローチを採用しており、設定情報やデータ及びメタデータをファイルシステム上によく整理された構成で保持します。これらはアプリケーションやユーザーから可視性の高い形式で保持されていますので、Arc の中で何が行われているか透明性高く利用することができます。この透明性はArc が大切にしている原則の1つであり、特長の1つです。
上述のように、Arc はファイルシステムに多くの情報を保持するアーキテクチャとなっているので、コンテナ終了後も永続性を求めるアプリケーションデータを保存する際は、対象のディレクトリには永続化可能なボリュームをマウントしてください。
CData Arc をDocker コンテナで動作させる方法
CData Arc のJava/Linux 版にはJetty Web Server が組み込まれているので、外部のWeb Application Server なしでArc を実行することができます。こちらのヘルプトピックのとおり、インストールに必要な手順も比較的シンプルです。
事前準備(Dockerfile、インストール用ファイル)
こちらに、組込みJetty を利用する構成のDockerfile と組込みJetty 用の設定ファイルを用意してあります。Readme も入れてありますので利用される際は最初にお読みください。
Dockerfile はこのような内容で用意しました。
FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu
# copy required files and fix permissions
RUN mkdir -p /opt/arc/webapp
WORKDIR /opt/arc
COPY arc.jar arc.jar
COPY arc.war webapp/arc.war
COPY arc*.xml /opt/arc/webapp/
RUN addgroup --system --gid 20000 cdataarc \
&& adduser --system --uid 20000 --gid 20000 cdataarc \
&& mkdir -p /var/opt/arc \
&& chown -R cdataarc:cdataarc /var/opt/arc \
&& chown -R cdataarc:cdataarc /opt/arc
# change user and set environment
USER cdataarc
ENV APP_DIRECTORY=/var/opt/arc
EXPOSE 8080
# run the app
CMD ["java","-jar","arc.jar"]
CData Arc のインストール用ファイルは、こちらからCData Arc 2022 のJava/Linux 版(setup.zip)を取得してください。setup.zip に含まれているarc.jar とarc.war ファイルをDockerfile と同じディレクトリに配置してください。
コンテナイメージの作成
コンテナイメージのビルドはシンプルです。Dockerfile を配置したディレクトリでbuild を実行します。
docker build . -t arc
コンテナイメージの実行
作成したコンテナイメージを実行します。
この記事で利用している設定ファイル及び手順では、8080 番ポートをプレーンテキストでListen するコンテナイメージを生成します。CData Arc へ外部アクセス可能にするにはポートマッピングを使用します。下記のようにポートマッピングして実行することで、ブラウザで http://container-ip:8080 にアクセスすることができます。
docker run -p 8080:8080 -d arc
無事にアクセスできました。
コンテナイメージの実行(コンテナ終了後もデータの永続化が必要な場合)
コンテナ終了後も永続性を求めるアプリケーションデータを保存する際は、対象のディレクトリに永続化可能なボリュームをマウントする必要があります。この場合、以下のようにコンテナイメージを実行します。
docker run -v /arc:/var/opt/arc -d arc
この例では、ホスト上の/arc ディレクトリがコンテナ内の/var/opt/arc ディレクトリにマウントされます。
おわりに
この記事では、CData Arc をDocker コンテナで動作させる方法をご紹介しました。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。軽量な構成と透明性の高いアーキテクチャを採用しているのも大きな特長です。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
この記事では CData Arc™ 2022 - 22.0.8336.0 を利用しています。
関連コンテンツ