PDF、組版と文書変換のアンテナハウス株式会社
PDF、組版と文書変換のアンテナハウス株式会社
トップページ > システム製品情報 > AH Formatter V6 製品トップ > Dockerイメージ
AH Formatter Linux 64ビット版のコマンドラインインターフェイスでお使いいただく Docker イメージをご用意しました。Docker Hub より利用可能です。
Dockerイメージを実行するには Linux 64ビット版のライセンスファイルが必要です。コンテナ内の AH Formatter は、ライセンスファイルが見つからない場合は動作しません。評価をご希望の方は、弊社システム営業グループ(sis@antenna.co.jp)までご連絡ください。
Docker イメージのタグとラベルには、AH Formatter V6.6 Linux 64ビット版のバージョン情報が含まれています。
Docker イメージには、メジャーおよびポイントリリース番号と改訂番号とビルド番号が付いています。AH Formatter の改訂版リリースは、すべて同じメジャー番号およびポイントリリース番号でタグ付けされていますが、改訂番号およびビルド番号が異なります。また、すべてのイメージは、latest バージョンとしてタグ付けされています。改訂版リリースごとに、Docker Hub に格納されている Docker イメージはすべて最新のイメージへ入れ替えられます。次の表は、リリースごとに付けられるタグの例を示しています。
AH Formatter バージョン | Docker タグ | ||||
---|---|---|---|---|---|
latest | メジャーバージョン | メジャー+ポイント | メジャー+ポイント+改訂 | ビルド | |
V6.6 R1 | latest | 6 | 6.6 | 6.6.0 | 6.6.1.34539 |
V6.6 MR1 | 6.6.1 | 6.6.x.xxxxx |
AH Formatter V6.6 の Dockerイメージのバージョン情報は docker inspect を使って取得できます。
$ docker inspect --format='{{.ContainerConfig.Labels.about}}' antennahouse/ahfcmd:6 AHFCmd : AH Formatter V6.6 R1 for Linux64 : 6.6.1.34539 (2018/08/29 13:12JST)
Dockerイメージは pull コマンドでダウンロードできます。Dockerイメージを pull する前に Docker にログインします。
タグの内のひとつを使用してイメージを pull します。antennahouse/ahfcmd:6 や antennahouse/ahfcmd:6.6 のイメージを pull すると、新しい改訂や強化が加わったときに、自動的に新しいバージョンの Docker を pull することが可能になります。しかし、イメージは予告なく変更される可能性があるため、改訂番号やビルド番号でタグ付けされたイメージを pull するよりも安定性が低くなります。
docker pull コマンドと出力の例
$ docker pull antennahouse/ahfcmd:6 6: Pulling from antennahouse/ahfcmd be8881be8156: Pull complete 5ff882512eae: Pull complete 9c3a3af72ffc: Pull complete a4db580eb6e4: Pull complete Digest: sha256:7ae695a11f0538b3f83513fe313ce9061664f7dda3428cc483d4c43d3370afda Status: Downloaded newer image for antennahouse/ahfcmd:6
イメージ ID はひとつの例として示しています。ID は Docker イメージのすべてのリリースで異なります。
Dockerイメージを実行するには、Linux 64ビット版のライセンスファイル(AHFormatter.lic)が必要です。 Dockerコンテナはライセンスファイルだけをマウントすることができ、また、カスタムフォントファイルを参照するフォント構築ファイル(font-config.xml)などを含む etc ディレクトリをマウントすることもできます。カスタムフォントは、マウントされた etc ディレクトリ内またはそのディレクトリ下に含めることも、別の場所にマウントされた別のディレクトリに置くこともできます。
以下の例は、ライセンスファイルをマウントする方法のみを示します。Dockerコマンドラインの他の側面については、他のセクションで説明します。
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 ...
カスタム font-config.xml と etc ディレクトリのサブディレクトリにあるカスタムフォントを合わせた 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 は、Dockerコンテナの etcディレクトリ全体を置き換えます。マウントされた etcは、Dockerコンテナの AHFCmd が使用するすべてのファイルとサブディレクトリ、例えばハイフネーション辞書が格納されているハイフネーションサブディレクトリなどを含まなければなりません。
追加のフォントディレクトリは、Dockerコマンドラインで追加の -v パラメータを使用することによって、Dockerコンテナの他の場所にマウントできます。マウントされた etc にある font-config.xml は、ホストコンピュータ上の場所ではなく、Dockerコンテナ内にあるフォントファイルの場所を参照する必要があります。
AH Formatter のコマンドラインパラメータはすべて使用できます。Docker コマンドラインのイメージ名の後のパラメータ(次のセクション「例」で「antennahouse/ahfcmd:6」の後)は、AH Formatter のコマンドラインパラメータとして使用されます。
ファイルを参照するコマンドラインパラメータの引数は、ホストコンピューター上の場所ではなく Docker コンテナ内の場所を参照する必要があります。ネットワークアクセスを介した外部リソースへのアクセス(例えば、HTTP を使用して取得した画像やフォントファイル)は、ネットワークアクセスで構成されている Docker コンテナに依存します。
この例では、Dockerコンテナへの AH Formatter ライセンスファイルの提供は省略されています。ライセンスファイルの提供方法については、前のセクションを参照してください。
入力が他のローカルファイルに依存しない単一のファイルである場合、つまり、ファイルシステム上の外部画像、スタイルシート、またはその他のファイルを参照していない場合、入力はコンテナに繋がれ、出力はホストコンピュータ上のファイルに繋がれます。
Bash:
docker run -i --rm antennahouse/ahfcmd:6 -d @STDIN -o @STDOUT \ < hello-world.fo > hello-world.pdf
コマンドプロンプト:
docker run -i --rm antennahouse/ahfcmd:6 -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コンテナにマウントできます。
入力とすべてのローカル依存関係がひとつのディレクトリの下にあり、すべてのファイル参照が相対参照である場合、すべてのファイルを含むディレクトリは -v オプションを使用してコンテナにマウントできます。docker run コマンドライン上の入力ファイルへの参照は、ホストコンピュータ上の場所ではなく、Dockerコンテナのファイルシステム上のその場所への参照です。
入力ファイルを含むディレクトリは、-v オプション値に :ro を追加することで読み取り専用でマウントできます。
出力が単一ファイルの場合、STDOUT に繋ぐことができます。
Bash:
docker run -i --rm -v `pwd`/in:/in:ro antennahouse/ahfcmd:6 \ -d /in/hello-world.fo -o @STDOUT > hello-world.pdf
コマンドプロンプト:
docker run -i --rm -v %cd%\in:/in:ro antennahouse/ahfcmd:6 ^ -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/ahfcmd:6 \ -d /in/hello-world.fo -o /out/hello-world.pdf
コマンドプロンプト:
docker run --rm -v %cd%\in:/in:ro -v %cd%\out:/out antennahouse/ahfcmd:6 ^ -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/ahfcmd:6 ` -d /in/hello-world.fo -o /out/hello-world.pdf
セキュリティ上の理由から、Dockerコンテナ内の AH Formatter は、UID 9999 と GID 9999 を持つ ahf ユーザとして実行することに注意してください。もしホストコンピュータが UID 9999 と GID 9999 を持つユーザの出力ディレクトリへの書き込みを許可しない場合、Dockerコンテナ内の AH Formatter はすべての出力の書き込みに失敗します。
Docker は管理者権限で実行する必要があります。管理者権限でプログラムを実行する際のリスクを最小限に抑えるため、十分な注意を払ってください。
antennahouse/ahfcmd イメージは、root として実行した場合起こりうるセキュリティ問題を防ぐため、UID 9999 のユーザーとして AH Formatter を実行します。Linux では、UID 9999 のユーザが、どのマウントの出力ボリュームにも書き込むことができるようにする必要があります。