OEM販売のご相談

Web Interface V6.0 for AH FormatterDockerイメージ

『Formatter』の Linux版のコマンドラインインターフェイスでお使いいただく Dockerイメージをご用意しました。Docker Hub より利用可能です。

Dockerイメージを実行するには Linux版のライセンスファイルが必要です。コンテナ内の『Formatter』は、ライセンスファイルが見つからない場合は動作しません。評価をご希望の方は、弊社システム営業グループ(sis@antenna.co.jp)までご連絡ください。

バージョン情報

Dockerイメージのタグとラベルには、『Formatter』の Linux版のバージョン情報が含まれています。

タグ

Dockerイメージには、メジャーおよびポイントリリース番号と改訂番号とビルド番号が付いています。『Formatter』の改訂版リリースは、すべて同じメジャー番号およびポイントリリース番号でタグ付けされていますが、改訂番号およびビルド番号が異なります。また、すべてのイメージは、latest バージョンとしてタグ付けされています。改訂版リリースごとに、Docker Hub に格納されている Dockerイメージはすべて最新のイメージへ入れ替えられます。次の表は、リリースごとに付けられるタグの例を示しています。

タグ
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/ahfcmd74:7
AHFCmd : Antenna House Formatter V7.4 R1 Linux : 7.4.1.63121 (2023-12-20T11:05+09)

Dockerイメージを pull する方法

Dockerイメージは pull コマンドでダウンロードできます。Dockerイメージを pull する前に Docker にログインします。

タグの内のひとつを使用してイメージを pull します。antennahouse/ahfcmd74:7antennahouse/ahfcmd74:7.4 のイメージを pull すると、新しい改訂や強化が加わったときに、自動的に新しいバージョンの Docker を pull することが可能になります。しかし、イメージは予告なく変更される可能性があるため、改訂番号やビルド番号でタグ付けされたイメージを pull するよりも安定性が低くなります。

docker pull コマンドと出力の例

$ docker pull antennahouse/ahfcmd74:7
7: Pulling from antennahouse/ahfcmd74
af107e978371: Pull complete
e3fb662e329f: Pull complete
4f4fb700ef54: Pull complete
a0c6e3f88ae9: Pull complete
10beb575e1c9: Pull complete
Digest: sha256:4f808a78aa14c9a3db622075ebc8243fc73f0aa2f7034fcc45c0bcaac46c893b
Status: Downloaded newer image for antennahouse/ahfcmd74:7
docker.io/antennahouse/ahfcmd74:7

イメージ ID はひとつの例として示しています。ID は Dockerイメージのすべてのリリースで異なります。

ライセンス

Dockerイメージを実行するには、Linux版のライセンスファイル(AHFormatter.lic)が必要です。 Dockerコンテナはライセンスファイルだけをマウントすることができ、また、カスタムフォントファイルを参照するフォント構築ファイル(font-config.xml)などを含む etc ディレクトリをマウントすることもできます。カスタムフォントは、マウントされた etc ディレクトリ内またはそのディレクトリ下に含めることも、別の場所にマウントされた別のディレクトリに置くこともできます。

以下の例は、ライセンスファイルをマウントする方法のみを示します。Dockerコマンドラインの他の側面については、他のセクションで説明します。

AHFormatter.lic のマウント

Dockerコンテナのカレントディレクトリに AHFormatter.lic ファイルのみを /AHFormatter/etc/AHFormatter.lic として読み取り専用(:ro)でマウントします。

Bash:

docker run -v `pwd`/AHFormatter.lic:/AHFormatter/etc/AHFormatter.lic:ro ...

コマンドプロンプト:

docker run -v %cd%\AHFormatter.lic:/AHFormatter/etc/AHFormatter.lic:ro ...

Power Shell:

docker run -v $PWD/AHFormatter.lic:/AHFormatter/etc/AHFormatter.lic:ro ...
AHFormatter.lic のマウント
AHFormatter.lic のマウント

etc ディレクトリのマウント

カスタム font-config.xmletc ディレクトリのサブディレクトリにあるカスタムフォントを合わせた etc ディレクトリ全体をマウントします。

Bash:

docker run -v `pwd`/etc:/AHFormatter/etc:ro ...

コマンドプロンプト:

docker run -v %cd%\etc:/AHFormatter/etc:ro ...

Power Shell:

docker run -v $PWD/etc:/AHFormatter/etc:ro ...
etc ディレクトリのマウント
etc ディレクトリのマウント

etc ディレクトリ内の他のファイルは、分かりやすくするために上記の図表では省いてあります。マウントされた etc は、Dockerコンテナの etc ディレクトリ全体を置き換えます。マウントされた etc は、Dockerコンテナの AHFCmd が使用するすべてのファイルとサブディレクトリ、例えばハイフネーション辞書が格納されているハイフネーションサブディレクトリなどを含まなければなりません。

追加のフォントディレクトリは、Dockerコマンドラインで追加の -v パラメータを使用することによって、Dockerコンテナの他の場所にマウントできます。マウントされた etc にある font-config.xml は、ホストコンピュータ上の場所ではなく、Dockerコンテナ内にあるフォントファイルの場所を参照する必要があります。

Formatter のコマンドラインパラメータ

『Formatter』のコマンドラインパラメータはすべて使用できます。Dockerコマンドラインのイメージ名の後のパラメータ(次のセクション「例」で「antennahouse/ahfcmd74:7」の後)は、『Formatter』のコマンドラインパラメータとして使用されます。

ファイルを参照するコマンドラインパラメータの引数は、ホストコンピューター上の場所ではなく Dockerコンテナ内の場所を参照する必要があります。ネットワークアクセスを介した外部リソースへのアクセス(例えば、HTTP を使用して取得した画像やフォントファイル)は、ネットワークアクセスで構成されている Dockerコンテナに依存します。

この例では、Dockerコンテナへの 『Formatter』ライセンスファイルの提供は省略されています。ライセンスファイルの提供方法については、前のセクションを参照してください。

ローカル依存しない入力

入力が他のローカルファイルに依存しない単一のファイルである場合、つまり、ファイルシステム上の外部画像、スタイルシート、またはその他のファイルを参照していない場合、入力はコンテナに繋がれ、出力はホストコンピュータ上のファイルに繋がれます。

Bash:

docker run -i --rm antennahouse/ahfcmd74:7 -d @STDIN -o @STDOUT \
  < hello-world.fo > hello-world.pdf

コマンドプロンプト:

docker run -i --rm antennahouse/ahfcmd74:7 -d @STDIN -o @STDOUT ^
  < hello-world.fo > hello-world.pdf

Power Shell:
 Docker からの PDF 出力をホストファイルシステム上のファイルにリダイレクトすることは、Power Shellでは機能しません。 Power Shell はデータをフィルタリングして、エンコードと行の終わりの両方を正規化するため、リダイレクトされた PDF データが破損するからです。

例えば、HTTP を使用して取得した画像またはフォントファイルなど、ネットワークアクセスを介して他のリソースにアクセスするかどうかは、Dockerコンテナ用に構成されているネットワークアクセスによって異なります。

ローカル依存の入力

入力がホストファイルシステム上の外部ファイルに依存している場合(例えば、入力が <fo:external-graphic> を使用する XSL-FO ファイルの場合)、ひとつまたは複数のディレクトリを Dockerコンテナにマウントできます。

STDOUT への読み取り専用ディレクトリ

入力とすべてのローカル依存関係がひとつのディレクトリの下にあり、すべてのファイル参照が相対参照である場合、すべてのファイルを含むディレクトリは -v オプションを使用してコンテナにマウントできます。docker run コマンドライン上の入力ファイルへの参照は、ホストコンピュータ上の場所ではなく、Dockerコンテナのファイルシステム上のその場所への参照です。

入力ファイルを含むディレクトリは、-v オプション値に :ro を追加することで読み取り専用でマウントできます。

出力が単一ファイルの場合、STDOUT に繋ぐことができます。

Bash:

docker run -i --rm -v `pwd`/in:/in:ro antennahouse/ahfcmd74:7 \
  -d /in/hello-world.fo -o @STDOUT > hello-world.pdf

コマンドプロンプト:

docker run -i --rm -v %cd%\in:/in:ro antennahouse/ahfcmd74:7 ^
  -d /in/hello-world.fo -o @STDOUT > hello-world.pdf

ホストコンピュータディレクトリへの出力

Docker の出力をファイルに送るのが都合が悪いとき(例えば、出力が複数の PDF ボリュームまたは複数の SVG ファイルである場合)、Dockerコンテナにマウントされているホストコンピュータ上のディレクトリに出力を書き込むことができます。

Bash:

docker run --rm -v `pwd`/in:/in:ro -v /tmp:/out antennahouse/ahfcmd74:7 \
  -d /in/hello-world.fo -o /out/hello-world.pdf

コマンドプロンプト:

docker run --rm -v %cd%\in:/in:ro -v %cd%\out:/out antennahouse/ahfcmd74:7 ^
  -d /in/hello-world.fo -o /out/hello-world.pdf

Power Shell:

docker run --rm -v $PWD/in:/in:ro -v $PWD/out:/out antennahouse/ahfcmd74:7 `
  -d /in/hello-world.fo -o /out/hello-world.pdf

セキュリティ上の理由から、Dockerコンテナ内の 『Formatter』は、UID 9999 と GID 9999 を持つ ahf ユーザとして実行することに注意してください。もしホストコンピュータが UID 9999 と GID 9999 を持つユーザの出力ディレクトリへの書き込みを許可しない場合、Dockerコンテナ内の 『Formatter』はすべての出力の書き込みに失敗します。

セキュリティ

Docker は管理者権限で実行する必要があります。管理者権限でプログラムを実行する際のリスクを最小限に抑えるため、十分な注意を払ってください。

antennahouse/ahfcmd74 イメージは、root として実行した場合起こりうるセキュリティ問題を防ぐため、UID 9999 のユーザーとして『Formatter』を実行します。Linux では、UID 9999 のユーザが、どのマウントの出力ボリュームにも書き込むことができるようにする必要があります。

以前のバージョン

以前のバージョンの Dockerイメージもご利用可能です。