付録M.4 Podmanイメージの作成について
Red Hat Enterprise Linux 8以降は,DockerコマンドとDockerエンジンが非サポートとなりますので,Dockerの代わりに提供されるPodmanにJP1/Baseを取り込む手順を次に示します。
-
製品媒体の内容をあらかじめDockerfile※格納ディレクトリにコピーする。
なお,コピーしたファイル群はコンペア等(バイナリレベル)で一致することを確認してください。
# mount /dev/cdrom ホスト上のマウントディレクトリ # cp -a ホスト上のマウントディレクトリ Dockerfile格納ディレクトリ
- 注※
-
PodmanもDockerfileを使用して,イメージを作成することができます。
以降のDockerfileの例では,「Dockerfile格納ディレクトリ/media」内に製品媒体をコピーしています。
-
ローカルyumレポジトリサーバを設定しているシステムの場合は,Dockerfile格納ディレクトリ内にレポジトリファイルを作成する。
-
Podmanイメージを作成するためのDockerfileを作成する。
サンプルを以下に示します。なお,Dockerfileの書式の詳細についてはDocker社のDockerfile referenceまたはman dockerfileを参照してください。
FROM rhel8.1:latest ※1 MAINTAINER 作成者 メールアドレス ※2 COPY local.repo /etc/yum.repos.d/ ※3 RUN yum -y install glibc.i686 libstdc++.i686 libnsl.i686 ncompress ncurses psmisc glibc-devel glibc-devel.i686 ※4 RUN yum -y install tar iputils net-tools procps-ng hostname ※5 RUN localedef -i ja_JP -f UTF-8 ja_JP.utf8 ※6 RUN mkdir /var/tmp/JP1 ※7 COPY media /var/tmp/JP1 ※8 WORKDIR /var/tmp/JP1 ※9 RUN export LANG=ja_JP.utf8 && ./LINUX/setup -f -k 形名 ./ ※10 ... RUN rm -rf /var/tmp/JP1 ※11
- 注※1
-
ベースとなるPodmanのイメージを指定します。":latest"は最新のイメージを指定しています。
- 注※2
-
イメージの管理者として作成者の氏名や連絡用のメールアドレスを指定します。省略可能です。
- 注※3
-
事前に作成しておいたレポジトリファイルをコンテナ内にコピーすることを指定します。
- 注※4
-
本製品の前提パッケージを事前にインストールすることを指定します。
- 注※5
-
Linux 8のPodmanイメージをベースイメージとする場合に,デフォルトでインストールされていないコマンド(tar, ps, hostname, netstat, ping)をインストールします。
- 注※6
-
ロケールを追加します。(上記例ではUTF-8を追加)
- 注※7
-
コンテナ内にワークディレクトリを作成します。
- 注※8
-
あらかじめDockerfile格納ディレクトリにコピーしておいた製品媒体の内容を,コンテナ上の/var/tmp/JP1にコピーすることを指定します。
- 注※9
-
カレントディレクトリをコンテナ上の/var/tmp/JP1に位置づけすることを指定します。
- 注※10
-
言語に合わせたLANG環境変数を設定後,Hitachi PP Installerのサイレントインストール機能を使用してコンテナ上にインストールすることを指定します。(上記例ではUTF-8を設定)
LANG環境変数を指定しない場合はCを仮定してインストール時のセットアップが行われます。
- 注※11
-
コンテナ上のワークディレクトリを削除することを指定します。
-
podman buildコマンドで手順3で作成したDockerfileを指定し,Podmanイメージを作成する。
# podman build -t Podmanイメージ名 Dockerfile格納ディレクトリ
手順3のDockerfile記載例では,このコマンドを実行する際,Dockerfile格納ディレクトリをカレントディレクトリとする必要があります。