10.4. 使用 Red Hat Satellite 订阅运行构建

10.4.1. 将 Red Hat Satellite 配置添加到构建中

使用 Red Hat Satellite 安装内容的构建必须提供适当的配置,以便从 Satellite 存储库获取内容。

先决条件

  • 您必须提供或创建与 yum 兼容的存储库配置文件,该文件将从 Satellite 实例下载内容。

    [test-<name>]
     name=test-<number>
     baseurl = https://satellite.../content/dist/rhel/server/7/7Server/x86_64/os
     enabled=1
     gpgcheck=0
     sslverify=0
     sslclientkey = /etc/pki/entitlement/...-key.pem
     sslclientcert = /etc/pki/entitlement/....pem

流程

  1. 创建包含 Satellite 存储库配置文件的 ConfigMap:

    $ oc create configmap yum-repos-d --from-file /path/to/satellite.repo
  2. BuildConfig 中添加 Satellite 存储库配置:

    source:
        configMaps:
        - configMap:
            name: yum-repos-d
          destinationDir: yum.repos.d

10.4.2. 使用 Red Hat Satellite 订阅构建 Docker

Docker 策略构建可以使用 Red Hat Satellite 软件仓库来安装订阅内容。

先决条件

  • 必须将权利密钥和 Satellite 存储库配置添加为构建输入。

流程

使用以下示例 Dockerfile 来通过 Satellite 安装内容:

FROM registry.redhat.io/rhel7:latest
USER root
# Copy entitlements
COPY ./etc-pki-entitlement /etc/pki/entitlement
# Copy repository configuration
COPY ./yum.repos.d /etc/yum.repos.d
# Delete /etc/rhsm-host to use entitlements from the build container
RUN sed -i".org" -e "s#^enabled=1#enabled=0#g" /etc/yum/pluginconf.d/subscription-manager.conf 1
#RUN cat /etc/yum/pluginconf.d/subscription-manager.conf
RUN yum clean all
#RUN yum-config-manager
RUN rm /etc/rhsm-host && \
    # yum repository info provided by Satellite
    yum -y update && \
    yum -y install <rpms> && \
    # Remove entitlements
    rm -rf /etc/pki/entitlement
# OpenShift requires images to run as non-root by default
USER 1001
ENTRYPOINT ["/bin/bash"]
1
如果使用 enabled=1 在构建中添加 Satellite 配置失败,请将 RUN sed -i".org" -e "s#^enabled=1#enabled=0#g" /etc/yum/pluginconf.d/subscription-manager.conf 添加到 Dockerfile。