diff --git a/rpm/Makefile b/rpm/Makefile index 33b1da9589..3185ebfa95 100644 --- a/rpm/Makefile +++ b/rpm/Makefile @@ -10,11 +10,15 @@ CLI_GITCOMMIT?=$(shell cd $(realpath $(CURDIR)/../src/github.com/docker/cli) && ENGINE_GITCOMMIT?=$(shell cd $(realpath $(CURDIR)/../src/github.com/docker/docker) && git rev-parse --short HEAD) BUILDX_GITCOMMIT?=$(shell cd $(realpath $(CURDIR)/../src/github.com/docker/buildx) && git rev-parse --short HEAD) +ifdef RH_USER + RH_FLAGS=--build-arg RH_USER=$(RH_USER) --build-arg RH_PASS=$(RH_PASS) +endif ifdef BUILD_IMAGE BUILD_IMAGE_FLAG=--build-arg $(BUILD_IMAGE) endif BUILD?=DOCKER_BUILDKIT=1 \ docker build \ + $(RH_FLAGS) \ $(BUILD_IMAGE_FLAG) \ --build-arg GO_IMAGE=$(GO_IMAGE) \ -t rpmbuild-$@/$(ARCH) \ @@ -53,11 +57,7 @@ RUN?=docker run --rm \ FEDORA_RELEASES ?= fedora-40 fedora-39 fedora-38 CENTOS_RELEASES ?= centos-7 centos-8 centos-9 -ifeq ($(ARCH),s390x) -RHEL_RELEASES ?= rhel-7 -else -RHEL_RELEASES ?= -endif +RHEL_RELEASES ?= rhel-8 rhel-9 DISTROS := $(FEDORA_RELEASES) $(CENTOS_RELEASES) $(RHEL_RELEASES) BUNDLES := $(patsubst %,rpmbuild/bundles-ce-%-$(DPKG_ARCH).tar.gz,$(DISTROS)) diff --git a/rpm/rhel-7/Dockerfile b/rpm/rhel-7/Dockerfile deleted file mode 100644 index 104b7cae73..0000000000 --- a/rpm/rhel-7/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG GO_IMAGE -ARG DISTRO=rhel -ARG SUITE=7 -ARG BUILD_IMAGE=dockereng/${DISTRO}:${SUITE}-s390x - -FROM ${GO_IMAGE} AS golang - -FROM ${BUILD_IMAGE} -ENV GOPROXY=https://proxy.golang.org|direct -ENV GO111MODULE=off -ENV GOPATH=/go -ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin -ENV AUTO_GOPATH 1 -ARG DISTRO -ARG SUITE -ENV DISTRO=${DISTRO} -ENV SUITE=${SUITE} -ENV CC=gcc - -# In aarch64 (arm64) images, the altarch repo is specified as repository, but -# failing, so replace the URL. -RUN if [ -f /etc/yum.repos.d/CentOS-Sources.repo ]; then sed -i 's/altarch/centos/g' /etc/yum.repos.d/CentOS-Sources.repo; fi -RUN yum install -y rpm-build rpmlint -COPY --link SPECS /root/rpmbuild/SPECS -RUN yum-builddep -y /root/rpmbuild/SPECS/*.spec -COPY --link --from=golang /usr/local/go /usr/local/go -WORKDIR /root/rpmbuild -ENTRYPOINT ["/bin/rpmbuild"] diff --git a/rpm/rhel-8/Dockerfile b/rpm/rhel-8/Dockerfile new file mode 100644 index 0000000000..1d26bb141c --- /dev/null +++ b/rpm/rhel-8/Dockerfile @@ -0,0 +1,36 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=rhel +ARG SUITE=8 +ARG BUILD_IMAGE=registry.access.redhat.com/ubi8/ubi + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} AS subscribed-image +ARG RH_USER +ARG RH_PASS +RUN rm /etc/rhsm-host +RUN subscription-manager register --username=$RH_USER --password=$RH_PASS +RUN subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms +# RUN dnf config-manager --set-enabled codeready-builder-for-rhel-8-$(arch)-rpms + +FROM subscribed-image + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH=/go +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin +ENV AUTO_GOPATH 1 +ENV DOCKER_BUILDTAGS exclude_graphdriver_btrfs +ARG DISTRO +ARG SUITE +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} + +RUN dnf install -y rpm-build rpmlint +COPY --link SPECS /root/rpmbuild/SPECS +RUN dnf builddep -y /root/rpmbuild/SPECS/*.spec +COPY --link --from=golang /usr/local/go /usr/local/go +WORKDIR /root/rpmbuild +ENTRYPOINT ["/bin/rpmbuild"] diff --git a/rpm/rhel-9/Dockerfile b/rpm/rhel-9/Dockerfile new file mode 100644 index 0000000000..3aa082045a --- /dev/null +++ b/rpm/rhel-9/Dockerfile @@ -0,0 +1,36 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=rhel +ARG SUITE=9 +ARG BUILD_IMAGE=registry.access.redhat.com/ubi9/ubi + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} AS subscribed-image +ARG RH_USER +ARG RH_PASS +RUN rm /etc/rhsm-host +RUN subscription-manager register --username=$RH_USER --password=$RH_PASS +RUN subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms +# RUN dnf config-manager --set-enabled codeready-builder-for-rhel-9-$(arch)-rpms + +FROM subscribed-image + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH=/go +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin +ENV AUTO_GOPATH 1 +ENV DOCKER_BUILDTAGS exclude_graphdriver_btrfs +ARG DISTRO +ARG SUITE +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} + +RUN dnf install -y rpm-build rpmlint +COPY --link SPECS /root/rpmbuild/SPECS +RUN dnf builddep -y /root/rpmbuild/SPECS/*.spec +COPY --link --from=golang /usr/local/go /usr/local/go +WORKDIR /root/rpmbuild +ENTRYPOINT ["/bin/rpmbuild"]