Changes in SPES
root@anuja2:/home/anuja/docker_for_sles/new/docker-ce-packaging/rpm/SPECS# git diff docker-ce-rootless-extras.spec
diff --git a/rpm/SPECS/docker-ce-rootless-extras.spec b/rpm/SPECS/docker-ce-rootless-extras.spec
index e52cfec..ad65e8a 100644
--- a/rpm/SPECS/docker-ce-rootless-extras.spec
+++ b/rpm/SPECS/docker-ce-rootless-extras.spec
@@ -13,10 +13,10 @@ Vendor: Docker
Packager: Docker <[email protected]>
Requires: docker-ce
-# slirp4netns >= 0.4 is available in the all supported versions of CentOS and Fedora.
-Requires: slirp4netns >= 0.4
-# fuse-overlayfs >= 0.7 is available in the all supported versions of CentOS and Fedora.
-Requires: fuse-overlayfs >= 0.7
+#slirp4netns >= 0.4 is available in the all supported versions of CentOS and Fedora.
+Requires: slirp4netns
+#fuse-overlayfs >= 0.7 is available in the all supported versions of CentOS and Fedora.
+Requires: fuse-overlayfs
BuildRequires: bash
root@anuja2:/home/anuja/docker_for_sles/new/docker-ce-packaging/rpm/SPECS# git diff docker-ce.spec
diff --git a/rpm/SPECS/docker-ce.spec b/rpm/SPECS/docker-ce.spec
index f4e60b1..5424c80 100644
--- a/rpm/SPECS/docker-ce.spec
+++ b/rpm/SPECS/docker-ce.spec
@@ -20,11 +20,11 @@ Packager: Docker <[email protected]>
Requires: /usr/sbin/groupadd
Requires: docker-ce-cli
Requires: docker-ce-rootless-extras
-Requires: container-selinux >= 2:2.74
-Requires: libseccomp >= 2.3
+Requires: container-selinux
+Requires: libseccomp2
Requires: systemd
Requires: iptables
-Requires: libcgroup
+Requires: libcgroup-devel
Requires: containerd.io >= 1.4.1
Requires: tar
Requires: xz
##
Changes in Makefile
diff --git a/rpm/Makefile b/rpm/Makefile
index 1ecf702..6b35a7f 100644
--- a/rpm/Makefile
+++ b/rpm/Makefile
@@ -11,7 +11,7 @@ ENGINE_GITCOMMIT?=$(shell cd $(realpath $(CURDIR)/../src/github.com/docker/docke
ifdef BUILD_IMAGE
BUILD_IMAGE_FLAG=--build-arg $(BUILD_IMAGE)
endif
-BUILD?=DOCKER_BUILDKIT=1 \
+BUILD?=DOCKER_BUILDKIT=0 \
docker build \
$(BUILD_IMAGE_FLAG) \
--build-arg GO_IMAGE=$(GO_IMAGE) \
@@ -28,6 +28,7 @@ endif
SPECS?=$(addprefix SPECS/, $(SPEC_FILES))
RPMBUILD_FLAGS?=-ba\
+ --define '_without_btrfs 1' \
--define '_gitcommit_cli $(CLI_GITCOMMIT)' \
--define '_gitcommit_engine $(ENGINE_GITCOMMIT)' \
--define '_release $(word 2,$(GEN_RPM_VER))' \
@@ -41,9 +42,9 @@ RPMBUILD_FLAGS?=-ba\
RUN_FLAGS=
RUN?=docker run --rm \
-e PLATFORM \
- -v $(CURDIR)/rpmbuild/SOURCES:/root/rpmbuild/SOURCES:ro \
- -v $(CURDIR)/rpmbuild/$@/RPMS:/root/rpmbuild/RPMS \
- -v $(CURDIR)/rpmbuild/$@/SRPMS:/root/rpmbuild/SRPMS \
+ -v $(CURDIR)/rpmbuild/SOURCES:/usr/src/packages/SOURCES:ro \
+ -v $(CURDIR)/rpmbuild/$@/RPMS:/usr/src/packages/RPMS \
+ -v $(CURDIR)/rpmbuild/$@/SRPMS:/usr/src/packages/SRPMS \
$(RUN_FLAGS) \
rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS)
@@ -54,8 +55,9 @@ RHEL_RELEASES ?= rhel-7
else
RHEL_RELEASES ?=
endif
+SLES_RELEASES ?= sles-12
-DISTROS := $(FEDORA_RELEASES) $(CENTOS_RELEASES) $(RHEL_RELEASES)
+DISTROS := $(FEDORA_RELEASES) $(CENTOS_RELEASES) $(RHEL_RELEASES) $(SLES_RELEASES)
BUNDLES := $(patsubst %,rpmbuild/bundles-ce-%-$(DPKG_ARCH).tar.gz,$(DISTROS))
.PHONY: help
@@ -83,8 +85,11 @@ centos: $(CENTOS_RELEASES) ## build all centos rpm packages
.PHONY: rhel
rhel: $(RHEL_RELEASES) ## build all rhel rpm packages
+.PHONY: sles
+sles: $(SLES_RELEASES) ## build all sles rpm packages
+
.PHONY: $(DISTROS)
-$(DISTROS): rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz rpmbuild/SOURCES/scan-cli-plugin.tgz rpmbuild/SOURCES/docker.service rpmbuild/SOURCES/docker.socket rpmbuild/SOURCES/plugin-installers.tgz
+$(DISTROS): rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz rpmbuild/SOURCES/scan-cli-plugin.tgz rpmbuild/SOURCES/docker.service rpmbuild/SOURCES/docker.socket rpmbuild/SOURCES/plugin-installers.tgz
@echo "== Building packages for $@ =="
mkdir -p "rpmbuild/$@"
$(BUILD)
@@ -124,7 +129,7 @@ rpmbuild/SOURCES/docker.socket: ../systemd/docker.socket
cp $< $@
rpmbuild/SOURCES/plugin-installers.tgz: $(wildcard ../plugins/*)
- docker run --rm -w /v \
+ docker run -w /v \
-v $(PLUGINS_DIR):/plugins \
-v $(CURDIR)/$(@D):/v \
alpine \
SLES-12 Dockerfile
ARG GO_IMAGE
ARG DISTRO=sles
ARG SUITE=12.5
ARG BUILD_IMAGE=ecos0003:5000/jenkins_jnlpslave_sles:12-sp5
FROM ${GO_IMAGE} AS golang
FROM ${BUILD_IMAGE}
ENV GOPROXY=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 seccomp selinux
ENV RUNC_BUILDTAGS seccomp selinux
ARG DISTRO
ARG SUITE
ENV DISTRO=${DISTRO}
ENV SUITE=${SUITE}
ENV CC=gcc
USER root
# 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 sudo zypper ref -s && sudo zypper install -y rpm-build rpmlint pkg-config libsystemd0 systemd-devel
RUN sudo zypper install -y cmake device-mapper-devel git glibc-devel-static libseccomp-devel libtool selinux-policy-devel
COPY SPECS /usr/src/packages/SPECS
COPY rpmbuild/SOURCES/ /usr/src/packages/SOURCES/
RUN ls /usr/src/packages/SPECS && sudo find / -iname plugin-installers.tgz && mkdir -p /root/rpmbuild/SPECS/ && cp -r /usr/src/packages/SPECS/* /root/rpmbuild/SPECS/
# TODO change once we support scan-plugin on other architectures
RUN \
if [ "$(uname -m)" = "x86" ]; then \
sudo rpmbuild /root/rpmbuild/SPECS/*.spec; \
else \
sudo rpmbuild --define '_without_btrfs 1' /usr/src/packages/SPECS/docker-c*.spec; \
fi
COPY --from=golang /usr/local/go /usr/local/go
WORKDIR /root/rpmbuild
ENTRYPOINT ["/usr/bin/rpmbuild"]
SLES-15 Dockerfile
ARG GO_IMAGE
ARG DISTRO=sles
ARG SUITE=12.5
ARG BUILD_IMAGE=ecos0003:5000/jenkins_jnlpslave_sles:15-sp2
FROM ${GO_IMAGE} AS golang
FROM ${BUILD_IMAGE}
ENV GOPROXY=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 seccomp selinux
ENV RUNC_BUILDTAGS seccomp selinux
ARG DISTRO
ARG SUITE
ENV DISTRO=${DISTRO}
ENV SUITE=${SUITE}
ENV CC=gcc
USER root
# 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
COPY sles-15/policycoreutils-3.2-1.s390x.rpm /root/
COPY sles-15/checkpolicy-3.2.61.1-1.s390x.rpm /root/
RUN rpm -i /root/policycoreutils-3.2-1.s390x.rpm && rpm -i /root/checkpolicy-3.2.61.1-1.s390x.rpm
RUN sudo zypper install -y rpm-build rpmlint pkg-config libsystemd0 systemd-devel selinux-tools
RUN sudo zypper install -y cmake device-mapper-devel git glibc-devel-static libseccomp-devel libtool
RUN wget https://download.opensuse.org/repositories/security:/SELinux/SLE_15_SP2/noarch/selinux-policy-20210419-105.1.noarch.rpm && rpm -i selinux-policy-20210419-105.1.noarch.rpm
RUN wget https://download.opensuse.org/repositories/security:/SELinux/SLE_15_SP2/noarch/selinux-policy-devel-20210419-105.1.noarch.rpm && rpm -i selinux-policy-devel-20210419-105.1.noarch.rpm
COPY SPECS /usr/src/packages/SPECS
COPY rpmbuild/SOURCES/ /usr/src/packages/SOURCES/
RUN ls /usr/src/packages/SPECS && sudo find / -iname plugin-installers.tgz && mkdir -p /root/rpmbuild/SPECS/ && cp -r /usr/src/packages/SPECS/* /root/rpmbuild/SPECS/
# TODO change once we support scan-plugin on other architectures
RUN \
if [ "$(uname -m)" = "x86" ]; then \
sudo rpmbuild /root/rpmbuild/SPECS/*.spec; \
else \
sudo rpmbuild --define '_without_btrfs 1' /usr/src/packages/SPECS/docker-c*.spec; \
fi
COPY --from=golang /usr/local/go /usr/local/go
WORKDIR /root/rpmbuild
ENTRYPOINT ["/usr/bin/rpmbuild"]
Final Installation
mkdir -p /home/test/repo/
sudo chown -R root.root /home/test/repo/
#copy all rpms to repo folder
sudo cp * /home/test/repo/
sudo zypper install createrepo
sudo createrepo /home/test/repo/
sudo chmod -R o-w+r /home/test/repo/
sudo vi /etc/zypp/repos.d/myrepo.repo #/etc/zypp/repos.d
[local]
name=Local Docker-ce Repo
baseurl=file:///home/test/repo/
enabled=1
gpgcheck=0
sudo zypper install docker-ce
#For SLES 15 need to enable the repo https://software.opensuse.org/ and copy policycoreutils inside the container/system where your are installing docker rpms.