Hitachi

COBOL2002 使用の手引 手引編


39.2.2 COBOLプログラムをLinuxコンテナ起動時に実行する方法

ここでは,COBOLプログラムをDockerイメージに取り込んで,コンテナ起動時に実行する手順を例に説明します。

COBOLプログラムをコンテナ起動時に実行する場合は,「39.2.1 COBOL2002をLinuxコンテナに取り込む方法」で作成したDockerfileに,COBOLプログラムをDockerイメージに取り込む記述を追加して,コンテナ起動時にCOBOLプログラムを実行するように記述を変更する必要があります。

  1. Dockerfile格納ディレクトリ下に作業ディレクトリを作成し,その作業ディレクトリにCOBOLプログラムを格納します。

    この例では,Dockerfile格納ディレクトリの作業ディレクトリを「sample」,COBOLプログラムを「sample.out」とします。

    [/]# cd <Dockerfile格納ディレクトリ>/sample
    [<Dockerfile格納ディレクトリ>/sample]# ls
    sample.out
  2. COBOLプログラムをDockerイメージに取り込んで,コンテナ起動時に実行するためのDockerfileを作成します。

    この例では,「39.2.1 COBOL2002をLinuxコンテナに取り込む方法」の手順3.で作成したDockerfileを基に作成します。

    次に示す処理の記述個所は,太字(色付き)で示します。

    • COBOLプログラムをDockerイメージに取り込む処理

    • コンテナ起動時にCOBOLプログラムを実行する処理

    # ----- Dockerfile記述例 -----
    FROM rhel7.3:latest
    COPY local.repo /etc/yum.repos.d/
    RUN yum -y install cpio.x86_64
    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/*
    RUN mkdir /tmp/COBOL2002
    COPY media /tmp/COBOL2002
    WORKDIR /tmp/COBOL2002
    RUN chmod +x ./X64LIN/setup
    RUN ./X64LIN/setup -f -k P-9W36-1241 ./ …1.
    ENV PATH $PATH:/opt/HILNGcbl2k64/bin:/usr/bin:/bin:/opt/HIISlib64/bin
    ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/opt/HILNGcbl2k64/lib:/opt/HIISlib64/lib:\
    /opt/HISORTlib64/lib:/opt/HILNGcbl2k64/lib/cblxml
    ENV NLSPATH $NLSPATH:/opt/HIISlib64/%L/%N.cat:/opt/HISORTlib64/%L/%N.cat:\
    /opt/HILNGcbl2k64/lib/cblxml/cat/%L/%N
    WORKDIR /
    RUN rm -rf /tmp/COBOL2002
    RUN mkdir /tmp/sample …2.
    COPY sample /tmp/sample …3.
    WORKDIR /tmp/sample …4.
    CMD ./sample.out …5.
    説明

    1. COBOLプログラムをコンテナ起動時に実行する場合は,コンテナにインストールするCOBOL2002として,実行環境とシステム運用環境を提供するプログラムプロダクト(COBOL2002 Net Server Runtime(64))を指定できます。

    2. コンテナに作業ディレクトリを作成します。この例では,コンテナの作業ディレクトリを「/tmp/sample」とします。

    3. 手順1.でDockerfile格納ディレクトリの作業ディレクトリにコピーしたCOBOLプログラムを,コンテナの作業ディレクトリにコピーします。

    4. カレントディレクトリをコンテナの作業ディレクトリに位置づけます。

    5. コンテナ起動時に実行するCOBOLプログラムを指定します。

  3. 手順2.で作成したDockerfileを指定してdocker buildコマンドを実行します。

    この例では,Dockerfile格納ディレクトリをカレントディレクトリに位置づけてからコマンドを実行しています。

    [/]# cd <Dockerfile格納ディレクトリ>
    [<Dockerfile格納ディレクトリ>]# ls
    Dockerfile
    local.repo
    media
    sample
    [<Dockerfile格納ディレクトリ>]# docker build -t <Dockerイメージ名> ./

    DockerイメージがDockerfile格納ディレクトリに作成されます。