首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerfile使用RHEL8 UBI镜像注册订阅

Dockerfile使用RHEL8 UBI镜像注册订阅
EN

Stack Overflow用户
提问于 2021-03-11 01:19:56
回答 1查看 336关注 0票数 1

我需要访问ubi-8 (ubi-8-codeready-builder)上的CodeReady存储库中的几个包。似乎我无法访问这些包,除非我使用RHEL订阅。

构建注册到RHEL8订阅的RHEL镜像的标准实践是什么?如何为此构建Dockerfile?

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 02:09:48

一种解决方案是将用户名和密码传递给Dockerfile。

然后使用args注册订阅并启用CodeReady,如下面的Dockerfile文件所示。

代码语言:javascript
复制
# Basing the build image on RHEL UBI image.
# See `docker search registry.access.redhat.com/ubi` 
FROM registry.access.redhat.com/ubi8/ubi:8.1

ARG USERNAME
ARG PASSWORD

# CodeReady contains packages required for develpers (i.e. imake)
# Must register system using RHEL subscription in order to access these packages
RUN subscription-manager register --username ${USERNAME} --password ${PASSWORD} \
  && yum repolist \
  && subscription-manager attach --auto \
  && subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms \
  && yum repolist

然后,我可以将用户名和密码作为变量存储在密码文件中(密码应该添加到.gitignore中,这样它就不会被推送到任何中央代码库),并调用docker build,如下所示:

代码语言:javascript
复制
#!/bin/sh
source passwords

docker build \
  -t my-image:v1 \
  --build-arg USERNAME=${USERNAME} \
  --build-arg PASSWORD=${PASSWORD} \
  .

注意:需要注意的一件事是,每次构建映像时,您都会将映像注册到RedHat。我不能完全确定,但我假设在某个时候,它可能会达到系统注册数量的某个限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66569777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档