CData Arc をDocker コンテナで動作させる方法

by 色川穂高 | 2022年12月16日

こんにちは。CData Software Japan の色川です。
 
お客様から「CData Arc をDocker コンテナの上で動かしたいんだけど」という相談を頂くことが増えてきました。
 
Docker が登場してから約10年。今年のStack Overflow 年次調査結果をみると、すでにDocker はプロフェッショナルな開発者にとって欠かせないツールになりつつあるようです。
 
 
軽量かつ環境構築をコード化できるDocker コンテナは開発・検証環境として便利なのはもちろんですが、優れたオーケストレーションツールも浸透してきている今「これからのアプリケーション基盤の本命」と言えるかも知れません。なにしろ「Docker コンテナでアプリケーション実行環境を用意したい」といった機会は増えていきそうです。
 
この記事では、CData Arc をDocker コンテナで動作させる方法をご紹介します。
 
この記事はCData Software Advent Calendar 2022、16日目の記事です。
 

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 を入れて試しています。
 

WSL もドンドン使いやすくなってますね。WSL2 でUbuntu 環境を構成する手順はこちらの公式ドキュメントなどを。
WSL のインストール | Microsoft Learn

Ubuntu へのDocker インストールはこちらの公式ドキュメントなどを参考にしてください。
Install Docker Engine on Ubuntu | Docker Documentation

 

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 を利用しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。