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

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

関連コンテンツ