Web Interface V6.0 for AH FormatterDockerイメージ
64ビット版の組み合わせでお使いいただく Dockerイメージをご用意しました。Docker Hub より利用可能です。
Dockerイメージを実行するには『Web Interface』と組み合わせて使用される 『Formatter』 V7.0~V7.4 または V6.6 の Linux 64ビット版のライセンスファイルが両方必要です。Dockerコンテナ内の『Web Interface』サーバプログラムは、両方のライセンスファイルが見つからない場合は動作しません。評価をご希望の方は、弊社システム営業グループ(sis@antenna.co.jp)までご連絡ください。
バージョン情報
Dockerイメージのタグは、『Web Interface』サーバプログラムと組み合わせて使用される 『Formatter』 の Linux 64ビット版を指しています。(『Formatter』 コマンドラインインターフェイス用の ahfcmd Dockerイメージ は同じタグ形式を使っています。)
Dockerイメージのラベルには、『Web Interface』サーバプログラムと 『Formatter』 の Linux 64ビット版のバージョン情報が含まれています。
タグ
Dockerイメージには、メジャーおよびポイントリリース番号と改訂番号とビルド番号が付いています。『Formatter』 の改訂版リリースは、すべて同じメジャー番号およびポイントリリース番号でタグ付けされていますが、改訂番号およびビルド番号が異なります。また、すべてのイメージは、latest バージョンとしてタグ付けされています。改訂版リリースごとに、Docker Hub に latest、メジャーおよびポイントリリース番号でタグ付けされている Dockerイメージは最新のイメージへ入れ替えられます。次の表は、『Formatter V7.4』でリリースごとに付けられるタグの例を示しています。
Formatter バージョン | Docker タグ | ||||
---|---|---|---|---|---|
latest | メジャーバージョン | メジャー+ポイント | メジャー+ポイント+改訂 | ビルド | |
V7.4 R1 | latest | 7 | 7.4 | 7.4.0 | 7.4.1.63121 |
V7.4 MR1 | 7.4.1 | 7.4.x.xxxxx |
ラベル
『Formatter』 の Dockerイメージのバージョン情報は docker inspect を使って取得できます。
$ docker inspect --format='{{.Config.Labels.about}}' antennahouse/xdsserver:7 AHFCmd : Antenna House Formatter V7.4 R1 Linux : 7.4.1.63121 (2023-12-20T11:05+09)
『Web Interface』サーバプログラムの場合も同様です。
$ docker inspect --format='{{.Config.Labels.xdsserverabout}}' antennahouse/xdsserver:7 xds version: 6.0MR11 (409) 2024-01-05 14:31 JST
Dockerイメージを pull する方法
Dockerイメージは pull コマンドでダウンロードできます。Dockerイメージを pull する前に Docker にログインします。
タグの内のひとつを使用してイメージを pull します。antennahouse/xdsserver:7 や antennahouse/xdsserver:7.2 のイメージを pull すると、新しい改訂や強化が加わったときに、自動的に新しいバージョンの Docker を pull することが可能になります。しかし、イメージは予告なく変更される可能性があるため、改訂番号やビルド番号でタグ付けされたイメージを pull するよりも安定性が低くなります。
$ docker pull antennahouse/xdsserver:7 7: Pulling from docker.io/antennahouse/xdsserver be8881be8156: Pull complete 87afd40ffc1e: Pull complete 46c26bf1484f: Pull complete 6f4da1ccc624: Pull complete d80f886906c8: Pull complete 6bd436e56012: Pull complete 65c630b63cb5: Pull complete 88db1ec641e8: Pull complete d4e808e65d22: Pull complete 991742fff373: Pull complete 8d0575674291: Pull complete 6d06c9f3bb07: Pull complete 03077647109d: Pull complete 9079e7be1a9e: Pull complete Digest: sha256:cf50f68357b42988ea023e92a99d082e400ae4f5c190929c566c9084c0628e07 Status: Downloaded newer image for docker.io/antennahouse/xdsserver:7
イメージ ID はひとつの例として示しています。ID は Dockerイメージのすべてのリリースで異なります。
ライセンス
Dockerイメージを実行するには、『Web Interface』のライセンスファイル xds.lic と 『Formatter』 のライセンスファイル AHFormatter.lic が必要です。アンテナハウスは、両方のライセンスファイルを zip アーカイブで提供します。zip アーカイブから抽出したディレクトリとファイルは、そのまま Dockerコンテナにマウントできます。
zip ファイルの中身は次のとおりです。
抽出したライセンスファイルをコンテナ内の /license 上に読み取り専用(:ro)でマウントするための Dockerコマンドラインの部分を次に示します。
Bash:
docker run -v `pwd`/license:/license:ro ...
コマンドプロンプト:
docker run -v %cd%\license:/license:ro ...
Power Shell:
docker run -v $PWD/license:/license:ro ...
コンテナ内の 『Web Interface』サーバプログラムと 『Formatter』 は、/license 内にあるライセンスファイルを使用します。
Web Interface サーバプログラムのオプションファイル
Dockerイメージには 『Web Interface』サーバプログラムのデフォルトのオプションファイルが /xds/server/xds-options.xml として含まれています。このオプションファイルでは値を指定しません。
<commandLine> </commandLine>
デフォルトのオプションファイルは、『Web Interface』サーバプログラムへ追加のプロパティを指定するために、ホストマシンからマウントされたオプションファイルによって必要に応じて上書きされます。
最大クライアント接続数と Formatter のプロセス数
『Web Interface』サーバプログラムの -mc オプションは、デフォルトではクライアント接続の最大数に制限はありません。-mp オプションは、デフォルトでは一度に実行できる 『Formatter』 のプロセスの最大数に制限はありません。Dockerコンテナが Docker Swarm の一部、または Kubernetes などのコンテナオーケストレーションシステムで実行されている場合は、クライアント接続数と 『Formatter』 のプロセス数のいずれかまたは両方を制限し、その代わりに外部コントローラーを使用して要求に応じてコンテナの複製とスケーリングを管理することをお勧めします。
例
『Web Interface』サーバプログラムの Dockerコンテナは通常、分離したサービスとして実行されます。コンテナは、Dockerコマンドを実行することによって開始します。『Web Interface』サーバプログラムはコンテナのポート 9999 をリッスンしますが、Docker はコンテナの起動時にそのポートをホストマシン上の任意のポートに結合できます。どのユーザーも、同じマシンまたは異なるマシン上の『Web Interface』のクライアントプログラムまたはフォルダ監視サービスを使用して、『Web Interface』サーバプログラムにアクセスできます。別の Dockerコマンドを実行すると、コンテナが停止します。
『Web Interface』サーバプログラムは、保護されていない接続のみを受け入れることも、SSL を使用して保護された接続のみを受け入れることもできます。『Web Interface』サーバプログラムが SSL を使用するように設定されている場合、『Web Interface』クライアントプログラムまたはフォルダ監視サービスは SSL を使用する必要があります。詳細については、『Web Interface』オンラインマニュアルの SSL のページを参照してください。
この例では、Dockerコンテナへのライセンスファイルの提供は省略されています。ライセンスファイルの提供方法については、前のセクションを参照してください。
Web Interface サーバプログラム
『Web Interface』サーバプログラムは、暗号化されていない接続または SSL を使用して保護されている接続のいずれかの受け入れが開始されると、構築されます。SSL パラメータは、Docker のコマンドラインまたはオプションファイルを使用して設定できます。
Dockerコンテナを開始
$ docker run -d --rm -p 9999:9999 --name=xdsserver antennahouse/xdsserver:7
パラメータ | 記述 |
---|---|
-d | バックグラウンドでコンテナを実行し、コンテナ ID を表示します。 |
-rm | コンテナが終了すると自動的にコンテナを削除します。 |
-p 9999:9999 | ホストのポート 9999(左側)をコンテナのポート 9999(右側)に結合します。 |
-name xdsserver | xdsserver をイメージから作成されたコンテナの名前として割り当てます。 |
antennahouse/xdsserver:7 | 『Web Interface』サーバプログラムの Dockerイメージ。 |
コマンドラインで SSL パラメータを指定
OS によっては、キーストアパスワードを含むコマンドラインが、同じマシン上で実行されている他のプロセスで表示される場合があることに注意してください。
Bash:
$ docker run -d --rm -v `pwd`/keystore.jks:/xds/server/keystore.jks:ro \ antennahouse/xdsserver:7 \ -java-prop javax.net.ssl.keyStore keystore.jks \ -java-prop javax.net.ssl.keyStorePassword 123456 -ssl \ -p 9999:9999 --name=xdsserver antennahouse/xdsserver:7
コマンドプロンプト:
> java docker run -d --rm -v %cd%\keystore.jks:/xds/server/keystore.jks:ro ^ antennahouse/xdsserver:7 ^ -java-prop javax.net.ssl.keyStore keystore.jks ^ -java-prop javax.net.ssl.keyStorePassword 123456 -ssl ^ -p 9999:9999 --name=xdsserver antennahouse/xdsserver:7
Power Shell:
> docker run -d --rm -v $PWD/keystore.jks:/xds/server/keystore.jks:ro ` antennahouse/xdsserver:7 ` -java-prop javax.net.ssl.keyStore keystore.jks ` -java-prop javax.net.ssl.keyStorePassword 123456 -ssl ` -p 9999:9999 --name=xdsserver antennahouse/xdsserver:7
パラメータ | 記述 |
---|---|
-v `pwd`/keystore.jks:/xds/server/keystore.jks:ro | Dockerコンテナに読み取り専用(:ro)のキーストアを /xds/server/keystore.jks としてマウントします。 |
-java-prop javax.net.ssl.keyStore keystore.jks | Dockerコンテナ内のその位置にあるキーストアを参照してください。 |
-java-prop javax.net.ssl.keyStorePassword 123456 | キーストアのパスワードを提供します。 |
-ssl | SSL の使用を有効にします。 |
オプションファイルで SSL パラメータを指定
キーストアのパスワードがオプションファイルに格納されている場合、キーストアのパスワードはホストマシン上で実行されている他のプロセスからは見えません。ただし、プロセスに適切な権限が与えられていれば、オプション XML ファイルを読み取れる場合があります。
Bash:
$ docker run -d --rm -v `pwd`/keystore.jks:/xds/server/keystore.jks:ro \ -v `pwd`/xds-ssl-options.xml:/xds/server/xds-options.xml:ro \ --name=xdsserver antennahouse/xdsserver:7
コマンドプロンプト:
> docker run -d --rm -v %cd%\keystore.jks:/xds/server/keystore.jks:ro ^ -v %cd%\xds-ssl-options.xml:/xds/server/xds-options.xml:ro ^ --name=xdsserver antennahouse/xdsserver:7
Power Shell:
> docker run -d --rm -v $PWD/keystore.jks:/xds/server/keystore.jks:ro ` -v $PWD/xds-ssl-options.xml:/xds/server/xds-options.xml:ro ` --name=xdsserver antennahouse/xdsserver:7
パラメータ | 記述 |
---|---|
-v %cd%\keystore.jks:/xds/server/keystore.jks:ro | 読み取り専用のキーストアを /xds/server/keystore.jks として Dockerコンテナにマウントします。 |
-v %cd%\xds-ssl-options.xml:/xds/server/xds-options.xml:ro | 読み取り専用のオプション XML ファイルを /xds/server/xds-options.xml として Dockerコンテナにマウントします。 |
SSL パラメータは、xds-ssl-options.xml ファイルで指定します。
<commandLine> <value>-java-prop</value> <value>javax.net.ssl.keyStore</value> <value>keystore.jks</value> <value>-java-prop</value> <value>javax.net.ssl.keyStorePassword</value> <value>123456</value> <value>-ssl</value> </commandLine>
Dockerコンテナにメディアファイルをマウント
file: プロトコルを使用した、あるいは絶対パスを含むメディア参照は、『Web Interface』サーバプログラムのコンテナのパスとして扱われます。ホストマシン上のメディアファイルは、Dockerコンテナ内のそれらの位置にマウントできます。複数のメディアファイルまたは個々のメディアファイルを含むディレクトリは、『Formatter』 がドキュメントを組版するときに参照されるようにコンテナにマウントできます。コマンドプロンプト構文を使用した以下の例ではイメージを含むディレクトリをマウントしています。
> docker run -d --rm -v %cd%\img:/img:ro ^ --name=xdsserver antennahouse/xdsserver:7
パラメータ | 記述 |
---|---|
-v %cd%\img:/img:ro | メディアファイルを含む読み取り専用ディレクトリを、Dockerコンテナ内にマウントします。 |
Dockerコンテナが実行中であることを確認
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c70ac7e48402 antennahouse/xdsserver:7 "java -jar xds-serve…" 15 minutes ago Up 15 minutes (healthy) 0.0.0.0:9999->9999/tcp xdsserver
コンテナ ID は、コンテナが実行されるたびに異なることに注意してください。
Dockerコンテナを停止
$ docker container stop xdsserver
Dockerコンテナに割り当てられた名前がない場合は、docker container ls が出力したコンテナ ID を使用します。次に例を示します。
$ docker container stop c70ac7e48402
Web Interface クライアントプログラム
Web Interface for 『Formatter』 のクライアントプログラムは、どのユーザでも実行できます。
プログラムを開始
$ java -jar xds-client.jar -d in/hello-world.fo -o hello-world.pdf
代替ホストまたはポート
『Web Interface』サーバプログラムは、別のマシンでホストさせることができます。また、デフォルト以外のポートを介して接続を受け入れることもできます。
$ java -jar xds-client.jar -d in/hello-world.fo -o hello-world.pdf \ -xds-host localhost -xds-port 9999
パラメータ | 記述 |
---|---|
-xds-host localhost | 『Web Interface』サーバマシンのホスト名または IP アドレスを指定します。 |
-xds-port 9999 | 『Web Interface』サーバプログラムの接続ポートを指定します。 |
Java システムプロパティで SSL を指定
キーストアの場所とパスワードを指定する Java システムプロパティは、java コマンドラインで -jar xds-client.jar パラメータの前に指定できます。
Bash:
$ java -Djavax.net.ssl.trustStore=`pwd`/keystore.jks \ -Djavax.net.ssl.trustStorePassword=123456 \ -jar xds-client.jar -xds-ssl -d in/hello-world.fo -o hello-world.pdf
コマンドプロンプト:
> java -Djavax.net.ssl.trustStore=%cd%\keystore.jks ^ -Djavax.net.ssl.trustStorePassword=123456 ^ -jar xds-client.jar -xds-ssl -d in/hello-world.fo -o hello-world.pdf
Power Shell:
> java -Djavax.net.ssl.trustStore=$PWD/keystore.jks ` -Djavax.net.ssl.trustStorePassword=123456 ` -jar xds-client.jar -xds-ssl -d in/hello-world.fo -o hello-world.pdf
パラメータ | 記述 |
---|---|
-Djavax.net.ssl.trustStore=`pwd`/keystore.jks | クライアントマシン上のキーストアの場所を指定します。 |
-Djavax.net.ssl.trustStorePassword=123456 | キーストアのパスワードを指定します。 |
-xds-ssl | SSL の使用を有効にします。 |
-xds-java-prop で SSL パラメータを指定
また、『Web Interface』クライアントプログラムの -xds-java-prop パラメータを使用して、キーストアの場所とパスワードを Java システムプロパティに指定することができます。
Bash:
$ java -jar xds-client.jar -xds-ssl \ -xds-java-prop javax.net.ssl.trustStore `pwd`/keystore.jks \ -xds-java-prop javax.net.ssl.trustStorePassword 123456 \ -d in/hello-world.fo -o hello-world.pdf
コマンドプロンプト:
> java -jar xds-client.jar -xds-ssl ^ -xds-java-prop javax.net.ssl.trustStore %cd%\keystore.jks ^ -xds-java-prop javax.net.ssl.trustStorePassword 123456 ^ -d in/hello-world.fo -o hello-world.pdf
Power Shell:
> java -jar xds-client.jar -xds-ssl ` -xds-java-prop javax.net.ssl.trustStore $PWD/keystore.jks ` -xds-java-prop javax.net.ssl.trustStorePassword 123456 ` -d in/hello-world.fo -o hello-world.pdf
パラメータ | 記述 |
---|---|
-xds-ssl | SSL の使用を有効にします。 |
-xds-java-prop javax.net.ssl.trustStore $PWD/keystore.jks | クライアントマシン上のキーストアの場所を指定します。 |
-xds-java-prop javax.net.ssl.trustStorePassword 123456 | キーストアのパスワードを指定します。 |
オプションファイルで SSL パラメータを指定
XDS_CLIENT_CONFIG 環境変数がオプションファイルの絶対位置に設定されている場合、『Web Interface』 クライアントプログラムは、ファイルで指定されているデフォルトのコマンドラインオプションも使用します。クライアントプログラムのオプションファイルの形式は、サーバープログラムのオプションファイルの形式と同じです。キーストアの場所とパスワードを Java システムプロパティで指定するための -xds-java-prop パラメータは、オプションファイルに含めることができます。
<commandLine> <value>-xds-ssl</value> <value>-xds-java-prop</value> <value>javax.net.ssl.trustStore</value> <value>keystore.jks</value> <value>-xds-java-prop</value> <value>javax.net.ssl.trustStorePassword</value> <value>123456</value> </commandLine>
Bash:
$ export XDS_CLIENT_CONFIG=`pwd`/client-option.xml $ java -jar xds-client.jar -d in/hello-world.fo -o hello-world.pdf
コマンドプロンプト:
> XDS_CLIENT_CONFIG=%cwd%/client-option.xml > java -jar xds-client.jar -d in/hello-world.fo -o hello-world.pdf
Power Shell:
> $env:XDS_CLIENT_CONFIG=$PWD/client-option.xml > java -jar xds-client.jar -d in/hello-world.fo -o hello-world.pdf
フォルダ監視サービス
フォルダ監視サービスプログラムは、どのユーザでも実行できます。
プログラムを開始
$ java -jar xds-folder-monitor.jar monitoring monitoring/output
パラメータ | 記述 |
---|---|
monitoring | 最初に監視するフォルダを指定します。 |
monitoring/output | 最初の出力フォルダを指定します。これは、その前に指定した監視フォルダのサブディレクトリでなければなりません。 |
代替ホストまたはポート
『Web Interface』サーバプログラムは、別のマシンでホストさせることができます。また、デフォルト以外のポートを介して接続を受け入れることもできます。別のホストまたは別のポートを使用するには、対応する 『Web Interface』クライアントプログラムのオプションを、デフォルトのコマンドファイル、または対象となるファイルの各 zip アーカイブに含まれている command.txt ファイルに指定する必要があります。たとえば command-host-port.txt ファイルの内容が次のような場合です。
ARGS = -xds-host localhost -xds-port 9999
$ java -jar xds-folder-monitor.jar \ -default-command-file command-host-port.txt \ monitoring monitoring/output
パラメータ | 記述 |
---|---|
-default-command-file command-host-port.txt | command-host-port.txt のコマンドをデフォルトのコマンドとして使用します。 |
Java システムプロパティで SSL を指定
キーストアの場所とパスワードを指定する Java システムのプロパティは、java コマンドラインの -jar xds-folder-monitor.jar パラメータの前に指定できます。『Web Interface』 クライアントプログラムの SSL を有効にする -xds-ssl パラメータは、コマンドファイルの ARGS パラメータに含める必要があります。たとえば command-xds-ssl.txt が次のような場合です。
ARGS = -xds-ssl
Bash:
$ java -Djavax.net.ssl.trustStore=`pwd`/keystore.jks \ -Djavax.net.ssl.trustStorePassword=123456 \ -jar xds-folter-monitor.jar \ -default-command-file command-xds-ssl.txt \ monitoring monitoring/output
コマンドプロンプト:
> java -Djavax.net.ssl.trustStore=%cd%\keystore.jks ^ -Djavax.net.ssl.trustStorePassword=123456 ^ -jar xds-folder-monitor.jar ^ -default-command-file command-xds-ssl.txt ^ monitoring monitoring/output
Power Shell:
> java -Djavax.net.ssl.trustStore=$PWD/keystore.jks ` -Djavax.net.ssl.trustStorePassword=123456 ` -jar xds-folder-monitor.jar ` -default-command-file command-xds-ssl.txt ` monitoring monitoring/output
パラメータ | 記述 |
---|---|
-Djavax.net.ssl.trustStore=%cd%\keystore.jks | クライアントマシン上のキーストアの場所を指定します。 |
-Djavax.net.ssl.trustStorePassword=123456 | キーストアのパスワードを指定します。 |
-default-command-file command-xds-ssl.txt | command-xds-ssl.txt のコマンドをデフォルトのコマンドとして使用します。 |
-java-prop で SSL パラメータを指定
また、フォルダ監視サービスの -java-prop パラメータを使用して、キーストアの場所とパスワードを Java システムプロパティに指定することができます。-xds-ssl もコマンドファイルの ARGS パラメータに含める必要があります。
Bash:
$ java -jar xds-folder-monitor.jar \ -java-prop javax.net.ssl.trustStore `pwd`/keystore.jks \ -java-prop javax.net.ssl.trustStorePassword 123456 \ -default-command-file command-xds-ssl.txt \ monitoring monitoring/output
コマンドプロンプト:
> java -jar xds-folder-monitor.jar ^ -java-prop javax.net.ssl.trustStore %cd%\keystore.jks ^ -java-prop javax.net.ssl.trustStorePassword 123456 ^ -default-command-file command-xds-ssl.txt ^ monitoring monitoring/output
Power Shell:
> java -jar xds-folder-monitor.jar ` -java-prop javax.net.ssl.trustStore $PWD/keystore.jks ` -java-prop javax.net.ssl.trustStorePassword 123456 ` -default-command-file command-xds-ssl.txt ` monitoring monitoring/output
パラメータ | 記述 |
---|---|
-java-prop javax.net.ssl.trustStore $PWD/keystore.jks | クライアントマシン上のキーストアの場所を指定します。 |
-java-prop javax.net.ssl.trustStorePassword 123456 | キーストアのパスワードを指定します。 |
-default-command-file command-xds-ssl.txt | command-xds-ssl.txt のコマンドをデフォルトのコマンドとして使用します。 |
コマンドファイルですべての SSL パラメータを指定
フォルダ監視サービスのコマンドライン -java-prop パラメータの代わりに、対応する -xds-java-prop パラメータをコマンドファイルで使用できます。たとえば command-xds-ssl-java-prop.txt が次のような場合です。
ARGS = -xds-ssl ARGS = -xds-java-prop javax.net.ssl.trustStore C:/path/to/keystore.jks ARGS = -xds-java-prop javax.net.ssl.trustStorePassword 123456
Bash:
$ java -jar xds-folder-monitor.jar \ -default-command-file command-xds-ssl-java-prop.txt \ monitoring monitoring/output
コマンドプロンプト:
> java -jar xds-folder-monitor.jar ^ -default-command-file command-xds-ssl-java-prop.txt ^ monitoring monitoring/output
Power Shell:
> java -jar xds-folder-monitor.jar ` -default-command-file command-xds-ssl-java-prop.txt ` monitoring monitoring/output
パラメータ | 記述 |
---|---|
-default-command-file command-xds-ssl-java-prop.txt | command-xds-ssl-java-prop.txt のコマンドをデフォルトのコマンドとして使用します。 |
セキュリティ
Docker は管理者権限で実行する必要があります。管理者権限でプログラムを実行する際のリスクを最小限に抑えるため、十分な注意を払ってください。
SSL を使用し、SSL パラメータがコマンドラインで指定されている場合、SSL パラメータはマシン上の他のプロセスから見える場合があります。ログレベルが DEBUG の場合、コマンドラインパラメータも記録されます。SSL パラメータがオプションファイルで指定されている場合、そのファイルにアクセスする権限を持つ他のプロセスがパラメータを参照できる可能性があります。