From 5b9122fbe973b4f58539efe99ee448c960aa8807 Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Sat, 11 Aug 2018 02:14:20 +0000 Subject: [PATCH] refactor fedora-28 Dockerfile for multi-stage Also moved package deps into spec file BuildRequires. Had to hard-code Epoch in spec file in order to realize deps with yum-builddep. Signed-off-by: Andrew Hsu Upstream-commit: 07f46e8e96692c511c04f29fbc78c2aa9592e479 Component: packaging --- .../packaging/rpm/fedora-28/Dockerfile.aarch64 | 15 +++++++++------ .../packaging/rpm/fedora-28/Dockerfile.x86_64 | 15 +++++++++------ components/packaging/rpm/fedora-28/docker-ce.spec | 9 +++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/components/packaging/rpm/fedora-28/Dockerfile.aarch64 b/components/packaging/rpm/fedora-28/Dockerfile.aarch64 index f8f68512f4..b5395fbbab 100644 --- a/components/packaging/rpm/fedora-28/Dockerfile.aarch64 +++ b/components/packaging/rpm/fedora-28/Dockerfile.aarch64 @@ -1,17 +1,20 @@ -FROM fedora:28 -RUN dnf -y upgrade -RUN dnf install -y @development-tools fedora-packager -RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common +FROM alpine:latest as golang +RUN apk add curl ARG GO_VERSION +RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local + +FROM fedora:28 ENV DISTRO fedora ENV SUITE 28 -RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local ENV GOPATH /go ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin ENV AUTO_GOPATH 1 ENV DOCKER_BUILDTAGS pkcs11 seccomp selinux ENV RUNC_BUILDTAGS seccomp selinux -RUN mkdir -p /go/src/github.com/docker && mkdir -p /go/src/github.com/opencontainers COPY docker-ce.spec /root/rpmbuild/SPECS/docker-ce.spec +RUN dnf install -y rpm-build dnf-plugins-core +RUN dnf builddep -y /root/rpmbuild/SPECS/docker-ce.spec +RUN mkdir -p /go/src/github.com/docker /go/src/github.com/opencontainers +COPY --from=golang /usr/local/go /usr/local/go/ WORKDIR /root/rpmbuild ENTRYPOINT ["/bin/rpmbuild"] diff --git a/components/packaging/rpm/fedora-28/Dockerfile.x86_64 b/components/packaging/rpm/fedora-28/Dockerfile.x86_64 index b5db207950..5786485384 100644 --- a/components/packaging/rpm/fedora-28/Dockerfile.x86_64 +++ b/components/packaging/rpm/fedora-28/Dockerfile.x86_64 @@ -1,17 +1,20 @@ -FROM fedora:28 -RUN dnf -y upgrade -RUN dnf install -y @development-tools fedora-packager -RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common +FROM alpine:latest as golang +RUN apk add curl ARG GO_VERSION +RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local + +FROM fedora:28 ENV DISTRO fedora ENV SUITE 28 -RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local ENV GOPATH /go ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin ENV AUTO_GOPATH 1 ENV DOCKER_BUILDTAGS pkcs11 seccomp selinux ENV RUNC_BUILDTAGS seccomp selinux -RUN mkdir -p /go/src/github.com/docker && mkdir -p /go/src/github.com/opencontainers COPY docker-ce.spec /root/rpmbuild/SPECS/docker-ce.spec +RUN dnf install -y rpm-build dnf-plugins-core +RUN dnf builddep -y /root/rpmbuild/SPECS/docker-ce.spec +RUN mkdir -p /go/src/github.com/docker /go/src/github.com/opencontainers +COPY --from=golang /usr/local/go /usr/local/go/ WORKDIR /root/rpmbuild ENTRYPOINT ["/bin/rpmbuild"] diff --git a/components/packaging/rpm/fedora-28/docker-ce.spec b/components/packaging/rpm/fedora-28/docker-ce.spec index 0d62e038d5..cc3f724fc4 100644 --- a/components/packaging/rpm/fedora-28/docker-ce.spec +++ b/components/packaging/rpm/fedora-28/docker-ce.spec @@ -18,6 +18,15 @@ Packager: Docker %global with_selinux 1 %global _missing_build_ids_terminate_build 0 +BuildRequires: make +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: git +BuildRequires: glibc-static +BuildRequires: libtool-ltdl-devel +BuildRequires: libseccomp-devel +BuildRequires: device-mapper-devel +BuildRequires: btrfs-progs-devel BuildRequires: pkgconfig(systemd) # required packages on install