mirror of
				https://github.com/vyos/vyos-build.git
				synced 2025-10-01 20:28:40 +02:00 
			
		
		
		
	Revert "Jenkins: T1927: Update Jenkinsfile to build on arm"
This reverts commit a7bb0a8021366b5883b947157e9989cf356d9d36.
This commit is contained in:
		
							parent
							
								
									9e8636d737
								
							
						
					
					
						commit
						721770c206
					
				
							
								
								
									
										56
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @ -73,74 +73,26 @@ setDescription() | |||||||
| // Due to long build times on DockerHub we rather build the container by ourself | // Due to long build times on DockerHub we rather build the container by ourself | ||||||
| // and publish it later on. | // and publish it later on. | ||||||
| node('Docker') { | node('Docker') { | ||||||
|     stage('Fetch') { |     stage('Build Container') { | ||||||
|  |         script { | ||||||
|             git branch: getGitBranchName(), |             git branch: getGitBranchName(), | ||||||
|                 url: getGitRepoURL() |                 url: getGitRepoURL() | ||||||
|     } | 
 | ||||||
|     stage('Build Docker container') { |  | ||||||
|         parallel ( |  | ||||||
|             'x86-64': { |  | ||||||
|                     script { |  | ||||||
|             // create container name on demand |             // create container name on demand | ||||||
|             env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() |             env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() | ||||||
|             sh "docker build -t ${env.DOCKER_IMAGE} docker" |             sh "docker build -t ${env.DOCKER_IMAGE} docker" | ||||||
|                         if ( ! isCustomBuild()) { |  | ||||||
|             withDockerRegistry([credentialsId: "DockerHub"]) { |             withDockerRegistry([credentialsId: "DockerHub"]) { | ||||||
|                 sh "docker push ${env.DOCKER_IMAGE}" |                 sh "docker push ${env.DOCKER_IMAGE}" | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|             }, |  | ||||||
|             'armhf': { |  | ||||||
|                     script { |  | ||||||
|                         // create container name on demand |  | ||||||
|                         env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + "-armhf" |  | ||||||
| 
 |  | ||||||
|                         dir('docker') { |  | ||||||
|                             sh """ |  | ||||||
|                                 cp Dockerfile armhf/Dockerfile |  | ||||||
|                                 cp entrypoint.sh armhf/entrypoint.sh |  | ||||||
|                                 sed -i 's#^FROM.*#FROM multiarch/debian-debootstrap:armhf-buster-slim#' armhf/Dockerfile |  | ||||||
|                                 docker build -t ${env.DOCKER_IMAGE} armhf |  | ||||||
|                             """ |  | ||||||
|                             if ( ! isCustomBuild()) { |  | ||||||
|                                 withDockerRegistry([credentialsId: "DockerHub"]) { |  | ||||||
|                                     sh "docker push ${env.DOCKER_IMAGE}" |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|             }, |  | ||||||
|             'arm64': { |  | ||||||
|                     script { |  | ||||||
|                         // create container name on demand |  | ||||||
|                         env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + "-arm64" |  | ||||||
| 
 |  | ||||||
|                         dir('docker') { |  | ||||||
|                             sh """ |  | ||||||
|                                 cp Dockerfile arm64/Dockerfile |  | ||||||
|                                 cp entrypoint.sh arm64/entrypoint.sh |  | ||||||
|                                 sed -i 's#^FROM.*#FROM multiarch/debian-debootstrap:arm64-buster-slim#' arm64/Dockerfile |  | ||||||
|                                 docker build -t ${env.DOCKER_IMAGE} arm64 |  | ||||||
|                             """ |  | ||||||
| 
 |  | ||||||
|                             if ( ! isCustomBuild()) { |  | ||||||
|                                 withDockerRegistry([credentialsId: "DockerHub"]) { |  | ||||||
|                                     sh "docker push ${env.DOCKER_IMAGE}" |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|             } |  | ||||||
|         ) |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pipeline { | pipeline { | ||||||
|     options { |     options { | ||||||
|         skipDefaultCheckout() |         skipDefaultCheckout() | ||||||
|         disableConcurrentBuilds() |         disableConcurrentBuilds() | ||||||
|         timeout(time: 120, unit: 'MINUTES') |         timeout(time: 90, unit: 'MINUTES') | ||||||
|         parallelsAlwaysFailFast() |         parallelsAlwaysFailFast() | ||||||
|         timestamps() |         timestamps() | ||||||
|     } |     } | ||||||
|  | |||||||
							
								
								
									
										314
									
								
								docker/arm64/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								docker/arm64/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,314 @@ | |||||||
|  | # Copyright (C) 2019 VyOS maintainers and contributors | ||||||
|  | # | ||||||
|  | # This program is free software; you can redistribute it and/or modify | ||||||
|  | # in order to easy exprort images built to "external" world | ||||||
|  | # it under the terms of the GNU General Public License version 2 or later as | ||||||
|  | # published by the Free Software Foundation. | ||||||
|  | # | ||||||
|  | # This program is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | # Must be run with --privileged flag, recommended to run the container with a | ||||||
|  | # volume mapped in order to easy export images | ||||||
|  | 
 | ||||||
|  | FROM multiarch/debian-debootstrap:arm64-buster-slim | ||||||
|  | LABEL authors="VyOS Maintainers <maintainers@vyos.io>" | ||||||
|  | 
 | ||||||
|  | ENV DEBIAN_FRONTEND noninteractive | ||||||
|  | 
 | ||||||
|  | # Standard shell should be bash not dash | ||||||
|  | RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ | ||||||
|  |     dpkg-reconfigure dash | ||||||
|  | 
 | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       dialog \ | ||||||
|  |       apt-utils \ | ||||||
|  |       locales | ||||||
|  | 
 | ||||||
|  | RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen | ||||||
|  | ENV LANG en_US.utf8 | ||||||
|  | 
 | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       vim \ | ||||||
|  |       git \ | ||||||
|  |       curl \ | ||||||
|  |       make \ | ||||||
|  |       sudo \ | ||||||
|  |       mc \ | ||||||
|  |       pbuilder \ | ||||||
|  |       devscripts \ | ||||||
|  |       squashfs-tools \ | ||||||
|  |       autoconf \ | ||||||
|  |       automake \ | ||||||
|  |       dpkg-dev \ | ||||||
|  |       genisoimage \ | ||||||
|  |       lsb-release \ | ||||||
|  |       fakechroot \ | ||||||
|  |       libtool \ | ||||||
|  |       libapt-pkg-dev \ | ||||||
|  |       parted \ | ||||||
|  |       kpartx \ | ||||||
|  |       quilt \ | ||||||
|  |       python3-lxml \ | ||||||
|  |       python3-setuptools \ | ||||||
|  |       python3-nose \ | ||||||
|  |       python3-coverage \ | ||||||
|  |       python3-sphinx \ | ||||||
|  |       python3-pystache \ | ||||||
|  |       python3-git \ | ||||||
|  |       python3-pip \ | ||||||
|  |       pkg-config \ | ||||||
|  |       debhelper \ | ||||||
|  |       gosu \ | ||||||
|  |       live-build \ | ||||||
|  |       jq | ||||||
|  | 
 | ||||||
|  | # Package needed for mdns-repeater | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       dh-systemd | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Building libvyosconf requires a full configured OPAM/OCaml setup | ||||||
|  | # | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libffi-dev \ | ||||||
|  |       libpcre3-dev | ||||||
|  | 
 | ||||||
|  | RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ | ||||||
|  |     sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ | ||||||
|  |     opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     opam install -y \ | ||||||
|  |       oasis | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ | ||||||
|  |       fileutils \ | ||||||
|  |       lwt \ | ||||||
|  |       lwt_ppx \ | ||||||
|  |       lwt_log \ | ||||||
|  |       ocplib-endian \ | ||||||
|  |       ounit \ | ||||||
|  |       pcre \ | ||||||
|  |       ppx_deriving_yojson \ | ||||||
|  |       sha \ | ||||||
|  |       toml \ | ||||||
|  |       xml-light \ | ||||||
|  |       batteries \ | ||||||
|  |       ocaml-protoc \ | ||||||
|  |       ctypes-foreign \ | ||||||
|  |       menhir | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ | ||||||
|  |       ctypes | ||||||
|  | 
 | ||||||
|  | # Build VyConf which is required to build libvyosconfig | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     opam pin add vyconf https://github.com/vyos/vyconf.git#51d79a3f -y | ||||||
|  | 
 | ||||||
|  | # Build libvyosconfig | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     git clone https://github.com/vyos/libvyosconfig.git && \ | ||||||
|  |     cd libvyosconfig && git checkout 9a80a5d3 && \ | ||||||
|  |     dpkg-buildpackage -uc -us -tc -b && \ | ||||||
|  |     dpkg -i ../libvyosconfig0_*.deb | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-cfg | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libglib2.0-dev \ | ||||||
|  |       libperl-dev \ | ||||||
|  |       libboost-filesystem-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-iproute | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       iptables-dev \ | ||||||
|  |       libatm1-dev \ | ||||||
|  |       libcap-dev \ | ||||||
|  |       libdb-dev \ | ||||||
|  |       libelf-dev \ | ||||||
|  |       libselinux1-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-webgui | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libexpat1-dev \ | ||||||
|  |       subversion | ||||||
|  | 
 | ||||||
|  | # Packages needed for pmacct | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libpcap-dev \ | ||||||
|  |       libpq-dev \ | ||||||
|  |       default-libmysqlclient-dev \ | ||||||
|  |       libgeoip-dev \ | ||||||
|  |       librabbitmq-dev \ | ||||||
|  |       libjansson-dev \ | ||||||
|  |       librdkafka-dev \ | ||||||
|  |       libnetfilter-log-dev | ||||||
|  | 
 | ||||||
|  | # Pavkages needed for wireguard | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libmnl-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for kernel | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libncurses5-dev \ | ||||||
|  |       flex \ | ||||||
|  |       bison \ | ||||||
|  |       libelf-dev \ | ||||||
|  |       bc \ | ||||||
|  |       kmod | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-accel-ppp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       cdbs \ | ||||||
|  |       cmake \ | ||||||
|  |       liblua5.1-dev | ||||||
|  | 
 | ||||||
|  | # Prerequisites for building rtrlib | ||||||
|  | # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       graphviz \ | ||||||
|  |       doxygen \ | ||||||
|  |       libssh-dev \ | ||||||
|  |       libssl-dev | ||||||
|  | 
 | ||||||
|  | # Build rtrlib release 0.6.3 | ||||||
|  | RUN export RTRLIB_VERSION="0.6.3" && \ | ||||||
|  |     wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \ | ||||||
|  |     tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \ | ||||||
|  |     cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \ | ||||||
|  |     dpkg -i ../librtr*.deb | ||||||
|  | 
 | ||||||
|  | # Packages needed to build frr itself | ||||||
|  | # https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst | ||||||
|  | # for more info | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libyang-dev \ | ||||||
|  |       libyang0.16 \ | ||||||
|  |       chrpath \ | ||||||
|  |       install-info \ | ||||||
|  |       libjson-c-dev \ | ||||||
|  |       libpython3-dev \ | ||||||
|  |       python3-dev \ | ||||||
|  |       python3-pytest \ | ||||||
|  |       texinfo | ||||||
|  | 
 | ||||||
|  | # Packages needed for conntrack-tools | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libnetfilter-conntrack-dev \ | ||||||
|  |       libnetfilter-cthelper0-dev \ | ||||||
|  |       libnetfilter-cttimeout-dev \ | ||||||
|  |       libnetfilter-queue-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for hvinfo | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       gnat \ | ||||||
|  |       gprbuild | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-1x | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       whois | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-xe-guest-utilities | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       golang | ||||||
|  | 
 | ||||||
|  | # Packages needed for ipaddrcheck | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libcidr0 \ | ||||||
|  |       libcidr-dev \ | ||||||
|  |       check | ||||||
|  | 
 | ||||||
|  | # Packages needed for lldpd | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libbsd-dev \ | ||||||
|  |       libevent-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-quagga | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libpam-dev \ | ||||||
|  |       libcap-dev \ | ||||||
|  |       libsnmp-dev \ | ||||||
|  |       gawk | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-strongswan | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libkrb5-dev \ | ||||||
|  |       libssl-dev \ | ||||||
|  |       libxml2-dev \ | ||||||
|  |       systemd \ | ||||||
|  |       libcurl4-openssl-dev \ | ||||||
|  |       libgcrypt20-dev \ | ||||||
|  |       libgmp3-dev \ | ||||||
|  |       libldap2-dev \ | ||||||
|  |       libsqlite3-dev \ | ||||||
|  |       dh-apparmor \ | ||||||
|  |       gperf \ | ||||||
|  |       libsystemd-dev \ | ||||||
|  |       python3-stdeb \ | ||||||
|  |       python-setuptools | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-opennhrp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libc-ares-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for ddclient | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       xmlto | ||||||
|  | 
 | ||||||
|  | # Packages needed for keepalived | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libnl-3-200 \ | ||||||
|  |       libnl-3-dev \ | ||||||
|  |       libnl-nf-3-200 \ | ||||||
|  |       libnl-nf-3-dev \ | ||||||
|  |       libipset-dev \ | ||||||
|  |       libnl-genl-3-200 \ | ||||||
|  |       libnl-genl-3-dev \ | ||||||
|  |       libpopt-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for net-snmp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       python-all \ | ||||||
|  |       python2.7-dev \ | ||||||
|  |       libmariadb-dev | ||||||
|  | 
 | ||||||
|  | # Install packer | ||||||
|  | RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ | ||||||
|  |     jq -r -M '.current_version')"; \ | ||||||
|  |     echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm64.zip" |\ | ||||||
|  |     curl -K- | gzip -d > /usr/bin/packer && \ | ||||||
|  |     chmod +x /usr/bin/packer | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # live-build: building in docker fails with mounting /proc | /sys | ||||||
|  | # | ||||||
|  | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919659 | ||||||
|  | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921815 | ||||||
|  | # https://salsa.debian.org/installer-team/debootstrap/merge_requests/26 | ||||||
|  | # | ||||||
|  | RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \ | ||||||
|  |     git clone https://salsa.debian.org/installer-team/debootstrap && \ | ||||||
|  |     cd debootstrap && \ | ||||||
|  |     git checkout 1.0.114 && \ | ||||||
|  |     patch -p1 < ../a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \ | ||||||
|  |     dch -n "Applying fix for docker image compile" && \ | ||||||
|  |     dpkg-buildpackage -us -uc && \ | ||||||
|  |     sudo dpkg -i ../debootstrap*.deb | ||||||
|  | 
 | ||||||
|  | # Allow password-less 'sudo' for all users in group 'sudo' | ||||||
|  | RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ | ||||||
|  |     chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod | ||||||
|  | 
 | ||||||
|  | # Ensure sure all users have access to our OCAM installation | ||||||
|  | RUN echo "$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc | ||||||
|  | 
 | ||||||
|  | # Cleanup | ||||||
|  | RUN rm -rf /tmp/* | ||||||
|  | 
 | ||||||
|  | COPY entrypoint.sh /usr/local/bin/entrypoint.sh | ||||||
|  | ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] | ||||||
							
								
								
									
										314
									
								
								docker/armhf/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								docker/armhf/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,314 @@ | |||||||
|  | # Copyright (C) 2019 VyOS maintainers and contributors | ||||||
|  | # | ||||||
|  | # This program is free software; you can redistribute it and/or modify | ||||||
|  | # in order to easy exprort images built to "external" world | ||||||
|  | # it under the terms of the GNU General Public License version 2 or later as | ||||||
|  | # published by the Free Software Foundation. | ||||||
|  | # | ||||||
|  | # This program is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | # Must be run with --privileged flag, recommended to run the container with a | ||||||
|  | # volume mapped in order to easy export images | ||||||
|  | 
 | ||||||
|  | FROM multiarch/debian-debootstrap:armhf-buster-slim | ||||||
|  | LABEL authors="VyOS Maintainers <maintainers@vyos.io>" | ||||||
|  | 
 | ||||||
|  | ENV DEBIAN_FRONTEND noninteractive | ||||||
|  | 
 | ||||||
|  | # Standard shell should be bash not dash | ||||||
|  | RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ | ||||||
|  |     dpkg-reconfigure dash | ||||||
|  | 
 | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       dialog \ | ||||||
|  |       apt-utils \ | ||||||
|  |       locales | ||||||
|  | 
 | ||||||
|  | RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen | ||||||
|  | ENV LANG en_US.utf8 | ||||||
|  | 
 | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       vim \ | ||||||
|  |       git \ | ||||||
|  |       curl \ | ||||||
|  |       make \ | ||||||
|  |       sudo \ | ||||||
|  |       mc \ | ||||||
|  |       pbuilder \ | ||||||
|  |       devscripts \ | ||||||
|  |       squashfs-tools \ | ||||||
|  |       autoconf \ | ||||||
|  |       automake \ | ||||||
|  |       dpkg-dev \ | ||||||
|  |       genisoimage \ | ||||||
|  |       lsb-release \ | ||||||
|  |       fakechroot \ | ||||||
|  |       libtool \ | ||||||
|  |       libapt-pkg-dev \ | ||||||
|  |       parted \ | ||||||
|  |       kpartx \ | ||||||
|  |       quilt \ | ||||||
|  |       python3-lxml \ | ||||||
|  |       python3-setuptools \ | ||||||
|  |       python3-nose \ | ||||||
|  |       python3-coverage \ | ||||||
|  |       python3-sphinx \ | ||||||
|  |       python3-pystache \ | ||||||
|  |       python3-git \ | ||||||
|  |       python3-pip \ | ||||||
|  |       pkg-config \ | ||||||
|  |       debhelper \ | ||||||
|  |       gosu \ | ||||||
|  |       live-build \ | ||||||
|  |       jq | ||||||
|  | 
 | ||||||
|  | # Package needed for mdns-repeater | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       dh-systemd | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Building libvyosconf requires a full configured OPAM/OCaml setup | ||||||
|  | # | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libffi-dev \ | ||||||
|  |       libpcre3-dev | ||||||
|  | 
 | ||||||
|  | RUN curl -k https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ | ||||||
|  |     sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ | ||||||
|  |     opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     opam install -y \ | ||||||
|  |       oasis | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ | ||||||
|  |       fileutils \ | ||||||
|  |       lwt \ | ||||||
|  |       lwt_ppx \ | ||||||
|  |       lwt_log \ | ||||||
|  |       ocplib-endian \ | ||||||
|  |       ounit \ | ||||||
|  |       pcre \ | ||||||
|  |       ppx_deriving_yojson \ | ||||||
|  |       sha \ | ||||||
|  |       toml \ | ||||||
|  |       xml-light \ | ||||||
|  |       batteries \ | ||||||
|  |       ocaml-protoc \ | ||||||
|  |       ctypes-foreign \ | ||||||
|  |       menhir | ||||||
|  | 
 | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ | ||||||
|  |       ctypes | ||||||
|  | 
 | ||||||
|  | # Build VyConf which is required to build libvyosconfig | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     opam pin add vyconf https://github.com/vyos/vyconf.git#51d79a3f -y | ||||||
|  | 
 | ||||||
|  | # Build libvyosconfig | ||||||
|  | RUN eval $(opam env --root=/opt/opam --set-root) && \ | ||||||
|  |     git clone https://github.com/vyos/libvyosconfig.git && \ | ||||||
|  |     cd libvyosconfig && git checkout 9a80a5d3 && \ | ||||||
|  |     dpkg-buildpackage -uc -us -tc -b && \ | ||||||
|  |     dpkg -i ../libvyosconfig0_*.deb | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-cfg | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libglib2.0-dev \ | ||||||
|  |       libperl-dev \ | ||||||
|  |       libboost-filesystem-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-iproute | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       iptables-dev \ | ||||||
|  |       libatm1-dev \ | ||||||
|  |       libcap-dev \ | ||||||
|  |       libdb-dev \ | ||||||
|  |       libelf-dev \ | ||||||
|  |       libselinux1-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-webgui | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libexpat1-dev \ | ||||||
|  |       subversion | ||||||
|  | 
 | ||||||
|  | # Packages needed for pmacct | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libpcap-dev \ | ||||||
|  |       libpq-dev \ | ||||||
|  |       default-libmysqlclient-dev \ | ||||||
|  |       libgeoip-dev \ | ||||||
|  |       librabbitmq-dev \ | ||||||
|  |       libjansson-dev \ | ||||||
|  |       librdkafka-dev \ | ||||||
|  |       libnetfilter-log-dev | ||||||
|  | 
 | ||||||
|  | # Pavkages needed for wireguard | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libmnl-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for kernel | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libncurses5-dev \ | ||||||
|  |       flex \ | ||||||
|  |       bison \ | ||||||
|  |       libelf-dev \ | ||||||
|  |       bc \ | ||||||
|  |       kmod | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-accel-ppp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       cdbs \ | ||||||
|  |       cmake \ | ||||||
|  |       liblua5.1-dev | ||||||
|  | 
 | ||||||
|  | # Prerequisites for building rtrlib | ||||||
|  | # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       graphviz \ | ||||||
|  |       doxygen \ | ||||||
|  |       libssh-dev \ | ||||||
|  |       libssl-dev | ||||||
|  | 
 | ||||||
|  | # Build rtrlib release 0.6.3 | ||||||
|  | RUN export RTRLIB_VERSION="0.6.3" && \ | ||||||
|  |     wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \ | ||||||
|  |     tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \ | ||||||
|  |     cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \ | ||||||
|  |     dpkg -i ../librtr*.deb | ||||||
|  | 
 | ||||||
|  | # Packages needed to build frr itself | ||||||
|  | # https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst | ||||||
|  | # for more info | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libyang-dev \ | ||||||
|  |       libyang0.16 \ | ||||||
|  |       chrpath \ | ||||||
|  |       install-info \ | ||||||
|  |       libjson-c-dev \ | ||||||
|  |       libpython3-dev \ | ||||||
|  |       python3-dev \ | ||||||
|  |       python3-pytest \ | ||||||
|  |       texinfo | ||||||
|  | 
 | ||||||
|  | # Packages needed for conntrack-tools | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libnetfilter-conntrack-dev \ | ||||||
|  |       libnetfilter-cthelper0-dev \ | ||||||
|  |       libnetfilter-cttimeout-dev \ | ||||||
|  |       libnetfilter-queue-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for hvinfo | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       gnat \ | ||||||
|  |       gprbuild | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-1x | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       whois | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-xe-guest-utilities | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       golang | ||||||
|  | 
 | ||||||
|  | # Packages needed for ipaddrcheck | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libcidr0 \ | ||||||
|  |       libcidr-dev \ | ||||||
|  |       check | ||||||
|  | 
 | ||||||
|  | # Packages needed for lldpd | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libbsd-dev \ | ||||||
|  |       libevent-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyatta-quagga | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libpam-dev \ | ||||||
|  |       libcap-dev \ | ||||||
|  |       libsnmp-dev \ | ||||||
|  |       gawk | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-strongswan | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libkrb5-dev \ | ||||||
|  |       libssl-dev \ | ||||||
|  |       libxml2-dev \ | ||||||
|  |       systemd \ | ||||||
|  |       libcurl4-openssl-dev \ | ||||||
|  |       libgcrypt20-dev \ | ||||||
|  |       libgmp3-dev \ | ||||||
|  |       libldap2-dev \ | ||||||
|  |       libsqlite3-dev \ | ||||||
|  |       dh-apparmor \ | ||||||
|  |       gperf \ | ||||||
|  |       libsystemd-dev \ | ||||||
|  |       python3-stdeb \ | ||||||
|  |       python-setuptools | ||||||
|  | 
 | ||||||
|  | # Packages needed for vyos-opennhrp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libc-ares-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for ddclient | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       xmlto | ||||||
|  | 
 | ||||||
|  | # Packages needed for keepalived | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       libnl-3-200 \ | ||||||
|  |       libnl-3-dev \ | ||||||
|  |       libnl-nf-3-200 \ | ||||||
|  |       libnl-nf-3-dev \ | ||||||
|  |       libipset-dev \ | ||||||
|  |       libnl-genl-3-200 \ | ||||||
|  |       libnl-genl-3-dev \ | ||||||
|  |       libpopt-dev | ||||||
|  | 
 | ||||||
|  | # Packages needed for net-snmp | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |       python-all \ | ||||||
|  |       python2.7-dev \ | ||||||
|  |       libmariadb-dev | ||||||
|  | 
 | ||||||
|  | # Install packer | ||||||
|  | RUN export LATEST="$(curl -k -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ | ||||||
|  |     jq -r -M '.current_version')"; \ | ||||||
|  |     echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm.zip" |\ | ||||||
|  |     curl -k -K- | gzip -d > /usr/bin/packer && \ | ||||||
|  |     chmod +x /usr/bin/packer | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # live-build: building in docker fails with mounting /proc | /sys | ||||||
|  | # | ||||||
|  | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919659 | ||||||
|  | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921815 | ||||||
|  | # https://salsa.debian.org/installer-team/debootstrap/merge_requests/26 | ||||||
|  | # | ||||||
|  | RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \ | ||||||
|  |     git clone https://salsa.debian.org/installer-team/debootstrap && \ | ||||||
|  |     cd debootstrap && \ | ||||||
|  |     git checkout 1.0.114 && \ | ||||||
|  |     patch -p1 < ../a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \ | ||||||
|  |     dch -n "Applying fix for docker image compile" && \ | ||||||
|  |     dpkg-buildpackage -us -uc && \ | ||||||
|  |     sudo dpkg -i ../debootstrap*.deb | ||||||
|  | 
 | ||||||
|  | # Allow password-less 'sudo' for all users in group 'sudo' | ||||||
|  | RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ | ||||||
|  |     chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod | ||||||
|  | 
 | ||||||
|  | # Ensure sure all users have access to our OCAM installation | ||||||
|  | RUN echo "$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc | ||||||
|  | 
 | ||||||
|  | # Cleanup | ||||||
|  | RUN rm -rf /tmp/* | ||||||
|  | 
 | ||||||
|  | COPY entrypoint.sh /usr/local/bin/entrypoint.sh | ||||||
|  | ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user