39.2.1 COBOL2002をLinuxコンテナに取り込む方法
ここでは,COBOL2002をDockerイメージに取り込む手順を例に説明します。COBOL2002をDockerイメージに取り込むためにDockerfileを作成します。
-
Dockerfile格納ディレクトリ下に作業ディレクトリを作成し,その作業ディレクトリに製品媒体の内容をコピーします。
この例では,Dockerfile格納ディレクトリの作業ディレクトリを「media」とします。
[/]# mount /dev/cdrom <ホストのマウントディレクトリ> [/]# cp -a <ホストのマウントディレクトリ> <Dockerfile格納ディレクトリ>/media
なお,コピーしたファイル群は,コンペアなどを実施してバイナリレベルで一致することを確認してください。
-
ローカル環境にyumレポジトリサーバを設定しているシステムの場合は,Dockerfile格納ディレクトリにレポジトリファイルを作成します。
-
COBOL2002をDockerイメージに取り込むためのDockerfileを作成します。
この例では,Linux(x64) COBOL2002(形名:P-9W36-1241)をDockerイメージに取り込みます。
Dockerfileの書式については,Dockerfileリファレンスまたはman dockerfileの記載を参照してください。
# ----- Dockerfile記述例 ----- FROM rhel7.3:latest …1. COPY local.repo /etc/yum.repos.d/ …2. RUN yum -y install cpio.x86_64 …3. RUN yum -y install cpp gcc glibc.i686 glibc-devel glibc-headers kernel-headers \ libgcc.i686 mpfr nss-softokn-freebl \ && yum clean all \ && rm -rf /var/cache/yum/* …4. RUN mkdir /tmp/COBOL2002 …5. COPY media /tmp/COBOL2002 …6. WORKDIR /tmp/COBOL2002 …7. RUN chmod +x ./X64LIN/setup …8. RUN ./X64LIN/setup -f -k P-9W36-1241 ./ …9. ENV PATH $PATH:/opt/HILNGcbl2k64/bin:/usr/bin:/bin:/opt/HIISlib64/bin …10. ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/opt/HILNGcbl2k64/lib:/opt/HIISlib64/lib:\ /opt/HISORTlib64/lib:/opt/HILNGcbl2k64/lib/cblxml …10. ENV NLSPATH $NLSPATH:/opt/HIISlib64/%L/%N.cat:/opt/HISORTlib64/%L/%N.cat:\ /opt/HILNGcbl2k64/lib/cblxml/cat/%L/%N …10. WORKDIR / …11. RUN rm -rf /tmp/COBOL2002 …12. CMD /bin/bash …13.
- 説明
-
1. ベースとなるDockerのイメージを指定します。
2. 事前に作成したレポジトリファイルをコンテナにコピーします。
3. コンテナのベースイメージにUBIを使用します(UBIをベースイメージとして使用しない場合,設定は不要です)。
4. 事前に,Dockerイメージに取り込むCOBOL2002の前提パッケージをインストールします。前提パッケージについては,「リリースノート」でご確認ください。
5. コンテナに作業ディレクトリを作成します。この例では,コンテナの作業ディレクトリを「/tmp/COBOL2002」とします。
6. 手順1.でDockerfile格納ディレクトリの作業ディレクトリにコピーした製品媒体の内容を,コンテナの作業ディレクトリにコピーします。
7. カレントディレクトリをコンテナの作業ディレクトリに位置づけます。
8. COBOL2002セットアッププログラムに実行権限を付与します。
9. COBOL2002のインストーラを使用して,コンテナにCOBOL2002をインストールします。
10. COBOL2002を使用するために必要な環境変数を指定します。詳細は「リリースノート」でご確認ください。
11. カレントディレクトリをルートディレクトリに位置づけます。
12. コンテナの作業ディレクトリを削除します。
13. コンテナ起動時に実行するコマンドを指定します。
-
手順3.で作成したDockerfileを指定してdocker buildコマンドを実行します。
この例では,Dockerfile格納ディレクトリをカレントディレクトリに位置づけてからコマンドを実行しています。
[/]# cd <Dockerfile格納ディレクトリ> [<Dockerfile格納ディレクトリ>]# ls Dockerfile local.repo media [<Dockerfile格納ディレクトリ>]# docker build -t <Dockerイメージ名> ./
DockerイメージがDockerfile格納ディレクトリに作成されます。