mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 07:36:46 +00:00
docker: Create build for CentOS 8
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
This commit is contained in:
parent
7655aa34c9
commit
3deaafbd9b
@ -1,5 +1,5 @@
|
||||
# This stage builds an rpm from the source
|
||||
FROM centos:centos7 as centos-builder
|
||||
FROM centos:centos7 as centos-7-builder
|
||||
|
||||
RUN yum install -y rpm-build autoconf automake libtool make \
|
||||
readline-devel texinfo net-snmp-devel groff pkgconfig \
|
||||
@ -35,9 +35,9 @@ RUN mkdir -p /pkgs/rpm \
|
||||
&& yum install -y https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-0.16.111-0.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-110/CentOS-7-x86_64-Packages/librtr-0.7.0-1.el7.centos.x86_64.rpm
|
||||
|
||||
COPY --from=centos-builder /rpmbuild/RPMS/ /pkgs/rpm/
|
||||
COPY --from=centos-7-builder /rpmbuild/RPMS/ /pkgs/rpm/
|
||||
|
||||
RUN yum install -y /pkgs/rpm/*/*.rpm \
|
||||
&& rm -rf /pkgs
|
||||
COPY docker/centos/docker-start /usr/lib/frr/docker-start
|
||||
COPY docker/centos-7/docker-start /usr/lib/frr/docker-start
|
||||
ENTRYPOINT [ "/usr/lib/frr/docker-start" ]
|
@ -8,24 +8,24 @@ set -e
|
||||
GITREV="$(git rev-parse --short=10 HEAD)"
|
||||
PKGVER="$(printf '%u\n' 0x$GITREV)"
|
||||
|
||||
mkdir -p docker/centos/pkgs
|
||||
mkdir -p docker/centos-7/pkgs
|
||||
docker build \
|
||||
--file=docker/centos/Dockerfile \
|
||||
--file=docker/centos-7/Dockerfile \
|
||||
--build-arg="PKGVER=$PKGVER" \
|
||||
--tag="frr:centos-builder-$GITREV" \
|
||||
--target=centos-builder \
|
||||
--tag="frr:centos-7-builder-$GITREV" \
|
||||
--target=centos-7-builder \
|
||||
.
|
||||
|
||||
# Copy RPM package from container to host
|
||||
CONTAINER_ID="$(docker create "frr:centos-builder-$GITREV")"
|
||||
docker cp "${CONTAINER_ID}:/rpmbuild/RPMS/x86_64/" docker/centos/pkgs
|
||||
CONTAINER_ID="$(docker create "frr:centos-7-builder-$GITREV")"
|
||||
docker cp "${CONTAINER_ID}:/rpmbuild/RPMS/x86_64/" docker/centos-7/pkgs
|
||||
docker rm "${CONTAINER_ID}"
|
||||
|
||||
docker build \
|
||||
--cache-from="frr:centos-builder-$GITREV" \
|
||||
--file=docker/centos/Dockerfile \
|
||||
--cache-from="frr:centos-7-builder-$GITREV" \
|
||||
--file=docker/centos-7/Dockerfile \
|
||||
--build-arg="PKGVER=$PKGVER" \
|
||||
--tag="frr:centos-$GITREV" \
|
||||
--tag="frr:centos-7-$GITREV" \
|
||||
.
|
||||
|
||||
docker rmi "frr:centos-builder-$GITREV"
|
||||
docker rmi "frr:centos-7-builder-$GITREV"
|
46
docker/centos-8/Dockerfile
Normal file
46
docker/centos-8/Dockerfile
Normal file
@ -0,0 +1,46 @@
|
||||
# This stage builds an rpm from the source
|
||||
FROM centos:centos8 as centos-8-builder
|
||||
|
||||
RUN dnf install --enablerepo=PowerTools -y rpm-build git autoconf pcre-devel \
|
||||
automake libtool make readline-devel texinfo net-snmp-devel pkgconfig \
|
||||
groff pkgconfig json-c-devel pam-devel bison flex python2-pytest \
|
||||
c-ares-devel python2-devel systemd-devel libcap-devel platform-python-devel \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-0.16.111-0.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-devel-0.16.111-0.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-110/CentOS-7-x86_64-Packages/librtr-0.7.0-1.el7.centos.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-110/CentOS-7-x86_64-Packages/librtr-devel-0.7.0-1.el7.centos.x86_64.rpm
|
||||
|
||||
RUN pip2 install sphinx
|
||||
|
||||
COPY . /src
|
||||
|
||||
ARG PKGVER
|
||||
|
||||
RUN echo '%_smp_mflags %( echo "-j$(/usr/bin/getconf _NPROCESSORS_ONLN)"; )' >> /root/.rpmmacros \
|
||||
&& cd /src \
|
||||
&& ./bootstrap.sh \
|
||||
&& ./configure \
|
||||
--enable-rpki \
|
||||
--enable-numeric-version \
|
||||
--with-pkg-extra-version="_git$PKGVER" \
|
||||
&& make dist \
|
||||
&& cd / \
|
||||
&& mkdir -p /rpmbuild/{SOURCES,SPECS} \
|
||||
&& cp /src/frr*.tar.gz /rpmbuild/SOURCES \
|
||||
&& cp /src/redhat/frr.spec /rpmbuild/SPECS \
|
||||
&& rpmbuild \
|
||||
--define "_topdir /rpmbuild" \
|
||||
-ba /rpmbuild/SPECS/frr.spec
|
||||
|
||||
# This stage installs frr from the rpm
|
||||
FROM centos:centos8
|
||||
RUN mkdir -p /pkgs/rpm \
|
||||
&& yum install -y https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-0.16.111-0.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-110/CentOS-7-x86_64-Packages/librtr-0.7.0-1.el7.centos.x86_64.rpm
|
||||
|
||||
COPY --from=centos-8-builder /rpmbuild/RPMS/ /pkgs/rpm/
|
||||
|
||||
RUN yum install -y /pkgs/rpm/*/*.rpm \
|
||||
&& rm -rf /pkgs
|
||||
COPY docker/centos-8/docker-start /usr/lib/frr/docker-start
|
||||
ENTRYPOINT [ "/usr/lib/frr/docker-start" ]
|
31
docker/centos-8/build.sh
Executable file
31
docker/centos-8/build.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
##
|
||||
# Package version needs to be decimal
|
||||
##
|
||||
GITREV="$(git rev-parse --short=10 HEAD)"
|
||||
PKGVER="$(printf '%u\n' 0x$GITREV)"
|
||||
|
||||
mkdir -p docker/centos-8/pkgs
|
||||
docker build \
|
||||
--file=docker/centos-8/Dockerfile \
|
||||
--build-arg="PKGVER=$PKGVER" \
|
||||
--tag="frr:centos-8-builder-$GITREV" \
|
||||
--target=centos-8-builder \
|
||||
.
|
||||
|
||||
# Copy RPM package from container to host
|
||||
CONTAINER_ID="$(docker create "frr:centos-builder-8-$GITREV")"
|
||||
docker cp "${CONTAINER_ID}:/rpmbuild/RPMS/x86_64/" docker/centos-8/pkgs
|
||||
docker rm "${CONTAINER_ID}"
|
||||
|
||||
docker build \
|
||||
--cache-from="frr:centos-8-builder-$GITREV" \
|
||||
--file=docker/centos-8/Dockerfile \
|
||||
--build-arg="PKGVER=$PKGVER" \
|
||||
--tag="frr:centos-8-$GITREV" \
|
||||
.
|
||||
|
||||
docker rmi "frr:centos-8-builder-$GITREV"
|
9
docker/centos-8/docker-start
Executable file
9
docker/centos-8/docker-start
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
chown -R frr:frr /etc/frr
|
||||
/usr/lib/frr/frrinit.sh start
|
||||
|
||||
# Sleep forever
|
||||
exec tail -f /dev/null
|
Loading…
Reference in New Issue
Block a user