Моя хост-система - это Windows 10, и я хотел бы создать образ Docker на основе rhel7-atomic.
Dockerfile:
FROM registry.access.redhat.com/rhel7-atomic
RUN microdnf --enablerepo=rhel-7-server-rpms \
install java-1.8.0-openjdk-headless --nodocs ;\
microdnf clean all
Источник: Представляем базовый образ Red Hat Enterprise Linux Atomic
Вывод:
$ docker build --force-rm=true --no-cache=true -t=rhel .
Sending build context to Docker daemon 5.632kB Step 1/2 : FROM
registry.access.redhat.com/rhel7-atomic ---> 4364d4c393ff Step 2/2 :
RUN microdnf --enablerepo=rhel-7-server-rpms install
java-1.8.0-openjdk-headless --nodocs ;microdnf clean all ---> Running
in 87b753f6bded
(process:6): librhsm-WARNING **: 07:20:18.402: Found 0 entitlement
certificates
(process:6): librhsm-WARNING **: 07:20:18.404: Found 0 entitlement
certificates error: (--enablerepo) repo rhel-7-server-rpms not found
(process:8): librhsm-WARNING **: 07:20:18.433: Found 0 entitlement
certificates
(process:8): librhsm-WARNING **: 07:20:18.435: Found 0 entitlement
certificates Complete. Removing intermediate container 87b753f6bded
---> 77d1aebf6942 Successfully built 77d1aebf6942 Successfully tagged rhel:latest
Я тоже пробовал с yum, но получаю ту же ошибку.
Проблема в том, что мне нужна подписка для моего хоста. Я зарегистрировался на сайте developers.redhat.com, но я не могу запустить subscription-manager в файле dockerfile, потому что команда не может быть найдена. Я нашел здесь еще один вопрос, в котором говорится, что хост-компьютер должен иметь подписку: Подписка на базовый образ Rhel7 atomic docker
Таким образом, кажется, что единственный способ зарегистрировать мой хост и присоединить действительную подписку - это загрузить официальный ISO-образ rhel и запустить его на виртуальной машине, подписать эту хост-систему внутри виртуальной машины на redhat и создать там мой образ докера.
Что мне не нравится в этом способе, так это то, что мне приходится загружать образ rhel размером 7 ГБ и запускать виртуальную машину только из-за отсутствия подписки.
Это верно? Или есть другой способ, который мне не хватает?
Было бы лучше использовать CentOS или Fedora в качестве базовых образов для сборки докеров?
Или проблема не в подписках, а в установке докера на Windows 10: https://access.redhat.com/discussions/3219221
Проблема в том, что Docker в Windows 10 не знает секретного соуса Red Hat, и хост не предлагает подписку для наследования контейнера. Чтобы это заработало, вам нужно запустить сборку на хосте с подпиской, используя пакет docker из репозиториев Red Hat yum.
Я бы порекомендовал CentOS начать с предположения, что вам понадобится совместимость с Red Hat в будущем. то есть, возможно, это POC, который необходимо запускать на образах / хостах RHEL в процессе производства.