-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add dockerfiles for building freeradius with docker
- Loading branch information
Matt Rose
committed
Jul 19, 2017
1 parent
a42573b
commit ca4af42
Showing
5 changed files
with
257 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
FROM centos:centos6 | ||
|
||
# | ||
# Install devtools like Make and git | ||
# | ||
RUN yum groupinstall -y "Development Tools" | ||
RUN yum install -y rpmdevtools | ||
RUN yum install -y vim emacs nano | ||
RUN yum install -y yum-utils | ||
|
||
# | ||
# Add the EPEL repository for freetds and hiredis | ||
# | ||
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm | ||
|
||
# | ||
# Install GCC-4.9 as it has the requisite support for C11 keywords and atomics | ||
# | ||
RUN yum install -y centos-release-scl | ||
RUN yum install -y devtoolset-3-gcc devtoolset-3-gcc-c++ | ||
ENV CC=/opt/rh/devtoolset-3/root/usr/bin/gcc | ||
|
||
# | ||
# Setup a src dir in /usr/local | ||
# | ||
RUN mkdir -p /usr/local/src/repositories | ||
WORKDIR /usr/local/src | ||
|
||
# | ||
# Get a modern version of cmake. We need 3.8.2 or later to build libkqueue rpms | ||
# | ||
RUN yum install -y openssl | ||
|
||
RUN curl https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh > ./cmake.sh | ||
|
||
RUN [ "$(cat ./cmake.sh | openssl sha256 | sed 's/^.* //')" = "bb26b1871f9e5c2fb73476186cc94d03b674608f704b48b94d617340b87b4d73" ] | ||
RUN chmod +x ./cmake.sh | ||
RUN ./cmake.sh --skip-license --prefix=/usr/local | ||
|
||
# | ||
# Grab libkqueue and build | ||
# | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 https://github.com/arr2036/libkqueue.git | ||
WORKDIR libkqueue | ||
|
||
# Fixme: Change to the main repo when they merge this branch | ||
RUN git checkout patch-3 | ||
RUN cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ./ && \ | ||
make && \ | ||
cpack -G RPM | ||
RUN yum localinstall -y ./*.rpm | ||
|
||
|
||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 https://github.com/mattrose/hiredis.git | ||
WORKDIR hiredis | ||
RUN git checkout rpm | ||
WORKDIR /usr/local/src/repositories | ||
RUN mkdir -p $HOME/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} | ||
RUN yum-builddep -y hiredis/redhat/hiredis.spec | ||
RUN v=$(rpm -q --qf '%{VERSION}\n' --specfile hiredis/redhat/hiredis.spec | head -1) ;\ | ||
mv hiredis hiredis-$v ;\ | ||
tar -c -z -f $HOME/rpmbuild/SOURCES/hiredis-$v.tar.gz --exclude=.git hiredis-$v ;\ | ||
rpmbuild -bb hiredis-$v/redhat/hiredis.spec | ||
RUN yum localinstall -y $HOME/rpmbuild/RPMS/*/hiredis-*.rpm | ||
|
||
# | ||
# Shallow clone the FreeRADIUS source | ||
# | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 https://github.com/mattrose/freeradius-server.git | ||
|
||
WORKDIR freeradius-server | ||
|
||
# Install build dependencies for all branches | ||
RUN for i in $(git for-each-ref --format='%(refname:short)' refs/remotes/origin 2>/dev/null | sed -e 's#origin/##' | egrep "^v[0-9]*\.[0-9x]*\.x$");\ | ||
do \ | ||
git checkout $i; \ | ||
[ -e ./redhat/freeradius.spec ] && yum-builddep -y ./redhat/freeradius.spec; \ | ||
done | ||
|
||
# Create the build tree | ||
ENV BUILDDIR=/root/rpmbuild | ||
RUN rpmdev-setuptree | ||
### This is necessary for the jenkins server to talk to the docker instance | ||
RUN yum install -y openssh-server java-1.8.0-openjdk-headless createrepo | ||
RUN adduser jenkins | ||
RUN echo -e "jenkins1" | passwd --stdin jenkins | ||
RUN mkdir /var/run/sshd | ||
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' | ||
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd | ||
EXPOSE 22 | ||
CMD ["/usr/sbin/sshd","-D"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
FROM centos:centos7 | ||
|
||
# | ||
# Install devtools like Make and git | ||
# | ||
RUN yum groupinstall -y "Development Tools" | ||
RUN yum install -y rpmdevtools | ||
RUN yum install -y vim emacs nano | ||
|
||
# | ||
# Add the EPEL repository for freetds and hiredis | ||
# | ||
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm | ||
|
||
# | ||
# Install GCC-4.9 as it has the requisite support for C11 keywords and atomics | ||
# | ||
RUN yum install -y centos-release-scl | ||
RUN yum install -y devtoolset-3-gcc devtoolset-3-gcc-c++ | ||
ENV CC=/opt/rh/devtoolset-3/root/usr/bin/gcc | ||
|
||
# | ||
# Setup a src dir in /usr/local | ||
# | ||
RUN mkdir -p /usr/local/src/repositories | ||
WORKDIR /usr/local/src | ||
|
||
# | ||
# Get a modern version of cmake. We need 3.8.2 or later to build libkqueue rpms | ||
# | ||
RUN yum install -y openssl | ||
|
||
RUN curl https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh > ./cmake.sh | ||
|
||
RUN [ "$(cat ./cmake.sh | openssl sha256 | sed 's/^.* //')" = "bb26b1871f9e5c2fb73476186cc94d03b674608f704b48b94d617340b87b4d73" ] | ||
RUN chmod +x ./cmake.sh | ||
RUN ./cmake.sh --skip-license --prefix=/usr/local | ||
|
||
# | ||
# Grab libkqueue and build | ||
# | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 --no-single-branch https://github.com/arr2036/libkqueue.git | ||
WORKDIR libkqueue | ||
|
||
# Fixme: Change to the main repo when they merge this branch | ||
RUN git checkout patch-3 | ||
RUN cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ./ && \ | ||
make && \ | ||
cpack -G RPM | ||
RUN yum localinstall -y ./*.rpm | ||
|
||
# | ||
# Shallow clone the FreeRADIUS source | ||
# | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth 1 --no-single-branch https://github.com/FreeRADIUS/freeradius-server.git | ||
WORKDIR freeradius-server | ||
|
||
# Install build dependencies for all branches | ||
RUN for i in $(git for-each-ref --format='%(refname:short)' refs/remotes/origin 2>/dev/null | sed -e 's#origin/##' | egrep "^v[0-9]*\.[0-9x]*\.x$");\ | ||
do \ | ||
git checkout $i; \ | ||
[ -e ./redhat/freeradius.spec ] && yum-builddep -y ./redhat/freeradius.spec; \ | ||
done | ||
|
||
# Create the build tree | ||
ENV BUILDDIR=/root/rpmbuild | ||
RUN rpmdev-setuptree | ||
### This is necessary for the jenkins server to talk to the docker instance | ||
RUN yum install -y openssh-server java-1.8.0-openjdk-headless createrepo | ||
RUN adduser jenkins | ||
RUN echo -e "jenkins1" | passwd --stdin jenkins | ||
RUN mkdir /var/run/sshd | ||
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' | ||
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd | ||
EXPOSE 22 | ||
CMD ["/usr/sbin/sshd","-D"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
FROM debian:jessie | ||
RUN apt-get update && apt-get install -y devscripts equivs git quilt | ||
RUN apt-get install -y g++-4.9 | ||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 && update-alternatives --config gcc | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 https://github.com/mattrose/freeradius-server.git | ||
|
||
WORKDIR freeradius-server | ||
|
||
# Install build dependencies for all branches | ||
RUN for i in $(git for-each-ref --format='%(refname:short)' refs/remotes/origin 2>/dev/null | sed -e 's#origin/##' | egrep "^v[0-9]*\.[0-9x]*\.x$");\ | ||
do \ | ||
git checkout $i; \ | ||
[ -e ./debian/control.in ] && debian/rules debian/control && echo 'y' | mk-build-deps -irt'apt-get -yV' debian/control; \ | ||
done | ||
|
||
### For some reason this dep was not installed | ||
# RUN apt-get install -y libiodbc2-dev | ||
### This is necessary for the jenkins server to talk to the docker instance | ||
RUN echo deb http://ftp.debian.org/debian jessie-backports main >> /etc/apt/sources.list | ||
RUN apt-get update && apt-get -t jessie-backports install -y openjdk-8-jre-headless | ||
RUN apt-get install -y openssh-server sudo | ||
RUN useradd -m jenkins | ||
RUN echo "jenkins:jenkins1" | chpasswd | ||
RUN echo "jenkins ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers | ||
RUN mkdir /var/run/sshd | ||
# RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' | ||
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd | ||
EXPOSE 22 | ||
CMD ["/usr/sbin/sshd","-D"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
FROM debian:wheezy | ||
RUN apt-get update && apt-get install -y sudo firebird-dev freetds-dev libcap-dev libcollectdclient-dev libcurl4-openssl-dev libgdbm-dev libhiredis-dev libidn11-dev libiodbc2-dev libjson0-dev libldap2-dev libpq-dev libmemcached-dev libmysqlclient-dev libpam0g-dev libpcap-dev libperl-dev libsqlite3-dev libunbound-dev libtalloc-dev libwbclient-dev libykclient-dev libyubikey-dev python-dev ruby ruby-dev snmp software-properties-common python-software-properties libssl-dev libtalloc-dev libkqueue-dev make packaging-dev libkrb5-dev libreadline-dev samba4-dev openssh-server mercurial | ||
|
||
RUN hg clone http://hg.openjdk.java.net/jdk8/jdk8 YourOpenJDK ;\ | ||
cd YourOpenJDK ;\ | ||
bash ./get_source.sh | ||
RUN apt-get install -y cpio zip openjdk-7-jdk libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev cups libcups2-dev | ||
RUN apt-get install -y libfreetype6-dev libasound2-dev | ||
ENV DISABLE_HOTSPOT_OS_VERSION_CHECK=ok | ||
RUN cd YourOpenJDK && bash ./configure && make | ||
RUN cd YourOpenJDK && make install | ||
RUN echo "deb http://http.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list | ||
RUN apt-get update && apt-get install -y gcc-4.9 g++-4.9 | ||
#RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 && update-alternatives --config gcc | ||
RUN apt-get install -y sudo && echo "jenkins ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers | ||
RUN useradd -m jenkins | ||
RUN echo "jenkins:jenkins1" | chpasswd | ||
RUN mkdir /var/run/sshd | ||
# RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' | ||
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd | ||
EXPOSE 22 | ||
CMD ["/usr/sbin/sshd","-D"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
FROM ubuntu:14.04 | ||
RUN apt-get update && apt-get install -y devscripts equivs git quilt | ||
RUN apt-get install -y software-properties-common python-software-properties | ||
RUN add-apt-repository ppa:ubuntu-toolchain-r/test | ||
RUN apt-get update | ||
RUN apt-get install -y g++-4.9 | ||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 && update-alternatives --config gcc | ||
WORKDIR /usr/local/src/repositories | ||
RUN git clone --depth=1 --no-single-branch https://github.com/mattrose/freeradius-server.git | ||
|
||
WORKDIR freeradius-server | ||
# RUN if [ -e ./debian/control.in ] ; then debian/rules debian/control ; fi ; echo 'y' | mk-build-deps -irt'apt-get -yV' debian/control | ||
# Install build dependencies for all branches | ||
RUN for i in $(git for-each-ref --format='%(refname:short)' refs/remotes/origin 2>/dev/null | sed -e 's#origin/##' | egrep "^v[0-9]*\.[0-9x]*\.x$");\ | ||
do \ | ||
git checkout $i; \ | ||
if [ -e ./debian/control.in ] ; then debian/rules debian/control ; fi ; echo 'y' | mk-build-deps -irt'apt-get -yV' debian/control ; \ | ||
done | ||
|
||
### For some reason this dep was not installed | ||
### This is necessary for the jenkins server to talk to the docker instance | ||
#RUN echo deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse >> /etc/apt/sources.list | ||
RUN apt-add-repository ppa:openjdk-r/ppa | ||
RUN apt-get update && apt-get install -y openjdk-8-jre-headless | ||
RUN apt-get install -y openssh-server | ||
RUN useradd -m jenkins | ||
RUN echo "jenkins:jenkins1" | chpasswd | ||
RUN echo "jenkins ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers | ||
RUN mkdir /var/run/sshd | ||
# RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' | ||
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd | ||
EXPOSE 22 | ||
CMD ["/usr/sbin/sshd","-D"] |