LoginSignup
0
1

More than 3 years have passed since last update.

[コンテナ] UBI7 イメージのyumでCentOS-Base リポジトリを追加する

Last updated at Posted at 2021-04-09

はじめに

UBI7 をベースイメージとしてコンテナを作っている際、ubi リポジトリにないパッケージをインストールしたくなりました。

UBI7 を使う前はcentos:7 を使っており、epelなどはyum install epel-release でいけましたが、UBIだとそうもいかず。

CentOS7 と同じようにyum を使いたかったので、いっそのことbaseextra など、CentOSなら標準で入っているリポジトリを設定してしまおうと思ったので、残しておきます。

UBI イメージとは  

以下の記事がとても分かりやすいです。

RedHat系のディストリビューションで軽量なコンテナイメージを使うなら、UBIを使っておけば間違えないと思います。

CentOS系のイメージはどうしても容量が大きい。。

UBI7イメージの取得方法

RedHat のページで検索すると出てきます。

UBI7であれば

podman pull registry.access.redhat.com/ubi7/ubi

yumを使う上での注意点

そのままyum install <package> とすると、RHELのリポジトリからインストールされる可能性があります。

その場合、ライセンス費用が発生するため、yum plugin のsubscription-manager は切っておくのが無難です。

subscription-manager を切る方法1

上記の参考リンクのどちらにも載っていますが、yumに--disableplugin=subscription-manager オプションを付ければ切れます。

ただ、こちらだと、オプションつけ忘れた際に事故るので、以下の方法の方がいいような?・・・

subscription-manager を切る方法2

/etc/yum/pluginconf.d/subscription-manager.confenable を0にする。

echo -e "[main]\nenabled=0" > /etc/yum/pluginconf.d/subscription-manager.conf

UBI7デフォルト状態のyum repolist

もちろん、CentOS系のリポジトリ はありません

 yum repolist
repo id                          repo name
ubi-7/x86_64                      Red Hat Universal Base Image 7 Server (RPMs)
ubi-7-rhah/x86_64                 Red Hat Universal Base Image Atomic Host (RPMs)
ubi-7-server-extras-rpms/x86_64   Red Hat Universal Base Image 7 Server - Extras (RPMs)
ubi-7-server-optional-rpms/x86_64 Red Hat Universal Base Image 7 Server - Optional (RPMs)
ubi-server-rhscl-7-rpms/x86_64    Red Hat Software Collections RPMs for Red Hat Universal Base Image 7 Server  

CentOS-Base.repo を追加する

/etc/yum.repos.dCentOS-Base.repo を追加する。

# CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

ポイント

それぞれのmirrorlist に指定しているURLのクエリストリング部分を静的に設定しています。

CentOS7 の場合、デフォルトだと$releasever$basearch で指定されています。

UBI7 のデフォルトイメージで上記変数指定だと、環境変数や/etc/yum.conf で設定しても、うまくうごいてくれませんでした。。
(yum がどうやって上記変数を扱っているか調べられていないので、ご存知の方いたら教えてください・・・)

$releasever の部分はCentOS7であれば、7 を指定し、
$basearch の部分は、想定利用環境がx86-64 アーキテクチャの環境なので、x86-64 を指定。

というより、ここ見る限り、x86-64しか存在していないし、固定でも特に問題ない?・・・

$infra は無くても大丈夫なので、なし。

追加後

CentOS-Base.repo 追加後、yum repolistを叩くと、追加されていることがわかります。

yum repolist
repo id                                 repo name
base                                    CentOS-7Server - Base
extras                                  CentOS-7Server - Extras
ubi-7/x86_64                            Red Hat Universal Base Image 7 Server (RPMs)
ubi-7-rhah/x86_64                       Red Hat Universal Base Image Atomic Host (RPMs)
ubi-7-server-extras-rpms/x86_64         Red Hat Universal Base Image 7 Server - Extras (RPMs)
ubi-7-server-optional-rpms/x86_64       Red Hat Universal Base Image 7 Server - Optional (RPMs)
ubi-server-rhscl-7-rpms/x86_64          Red Hat Software Collections RPMs for Red Hat Universal Base Image 7 Server
updates                                 CentOS-7Server - Updates 

これで、deltarpmepel-releaseinitscripts なんかもyum install で入ります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1