Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing Issues for the Ubuntu Builds in Docker #16

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/arch/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ RUN pacman -Sy --noconfirm gcc clang valgrind \
unzip doxygen git cmake \
wget openssl python2 libxml2 \
curl lsb-release \
rabbitmq libaio krb5 c-ares libgcrypt \
rabbitmq libaio krb5 c-ares \
python2-pylint libcap lz4 numactl libunwind google-glog \
\
# next are for volumedriver-core
Expand Down
2 changes: 1 addition & 1 deletion docker/centos/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ RUN echo '%_install_langs C' >> /etc/rpm/macros && \
cppzmq-devel tokyocabinet-devel bzip2-devel protobuf-compiler \
gflags-devel snappy-devel omniORB-devel omniORB-servers python-omniORB \
redis hiredis-devel lz4-devel \
python-nose libcurl-devel libgcrypt-devel libgcrypt \
python-nose libcurl-devel \
rpm rpm-build fuse protobuf-python fakeroot libxio-devel \
uriparser-devel supervisor rpcbind libunwind glog-devel && \
yum clean all && \
Expand Down
2 changes: 1 addition & 1 deletion docker/fc22/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ RUN echo '%_install_langs C' >> /etc/rpm/macros && \
librdmacm-devel loki-lib-devel protobuf-devel lttng-ust-devel \
cppzmq-devel tokyocabinet-devel bzip2-devel protobuf-compiler \
gflags-devel snappy-devel omniORB-devel omniORB-servers python-omniORB \
redis hiredis-devel libgcrypt-devel libgcrypt \
redis hiredis-devel \
python-nose libcurl-devel lz4-devel \
rpm rpm-build fuse protobuf-python fakeroot debhelper \
supervisor rpcbind && \
Expand Down
8 changes: 7 additions & 1 deletion docker/ubuntu/Dockerfile → docker/ubuntu1404/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ RUN apt-get update && \
apt-get update && \
apt-get install -y gcc-4.9 g++-4.9 libstdc++-4.9-dev clang-3.5 \
libboost1.57-all-dev \
build-essential libgcrypt11-dev libgcrypt11 \
build-essential \
flex bison gawk check pkg-config \
autoconf libtool realpath bc gettext lcov \
unzip doxygen dkms debhelper pylint git cmake \
Expand Down Expand Up @@ -86,6 +86,12 @@ RUN usermod -a -G fuse jenkins && \
usermod -a -G sudo jenkins && \
usermod -a -G adm jenkins

# Redis cannot start as a daemon on a Docker build.
RUN sed -i "s/daemonize yes/daemonize no/g" /etc/redis/redis.conf

# To preserve the logs for redis
RUN chown -R redis:redis /var/log/redis/

ADD supervisord.conf /etc/supervisor/supervisord.conf
ADD docker-entrypoint.sh /sbin/docker-entrypoint.sh

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ nodaemon=true

[program:rpcbind]
command=/sbin/rpcbind -f
startsecs=5
exitcodes=0

[program:redis]
command=bash -c "/usr/bin/redis-server /etc/redis/redis.conf"
startsecs=5
exitcodes=0

[program:omniNames]
command=bash -c "/usr/bin/omniNames -start -errlog /var/log/omniorb-nameserver.log || /usr/bin/omniNames -errlog /var/log/omniorb-nameserver.log"
startsecs=5
exitcodes=0
17 changes: 15 additions & 2 deletions docker/ubuntu1604/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RUN apt-get update -qq && \
apt-get dist-upgrade -y && \
apt-get install -y gcc g++ clang-3.8 valgrind \
libboost1.58-all-dev \
build-essential sudo libgcrypt20-dev libgcrypt20 \
build-essential sudo \
flex bison gawk check pkg-config \
autoconf libtool realpath bc gettext lcov \
unzip doxygen dkms debhelper pylint git cmake \
Expand Down Expand Up @@ -43,6 +43,9 @@ RUN groupadd -g 1002 jenkins && \
useradd jenkins -s /bin/bash -g jenkins -m -u ${UID} -g 1002 -d /home/jenkins && \
echo "jenkins ALL=NOPASSWD: ALL" >/etc/sudoers.d/jenkins

#Creating TMP Directoy To Avoid permission Issues -- Bug in Xenial
RUN mkdir /opt/tmp_docker; chmod -R 777 /opt/tmp_docker
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't make this an extra step (layer) but create the directory below (around line 55) where it's used (and cleanup afterwards)


# volumedriver-core tests use arakoon & alba
# (note: apt-get install -y --allow-unauthenticated arakoon alba does not yet work on 16.04)
# volumedriver-core needs accelio library to build
Expand All @@ -52,8 +55,9 @@ RUN echo "deb http://apt.openvstorage.com unstable main" > /etc/apt/sources.list
libxio0 libxio0-dbg libxio0-dbgsym \
libxio-dev libxio-dev-dbgsym && \
apt-get install -y libev4 && \
cd /root && apt-get download --allow-unauthenticated arakoon && \
cd /opt/tmp_docker && apt-get download --allow-unauthenticated arakoon && \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above: mkdir /opt/tmp_docker && cd /opt/tmp_docker && apt-get download...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to check: is an apt-get install arakoon not possible these days instead of the download/install sequence hack?

dpkg -i --ignore-depends=libgflags2,libsnappy1 arakoon_*_amd64.deb && \
#chown _apt arakoon_*_amd64.deb && \
rm arakoon_*_amd64.deb && \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"rm -rf /opt/tmp_docker" to clean-up

apt-get clean

Expand All @@ -71,6 +75,15 @@ RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 100 &&
update-alternatives --install /usr/bin/scan-build scan-build /usr/bin/scan-build-3.8 100 && \
update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-3.8 100

# Redis cannot start as a daemon on a Docker build.
RUN sed -i "s/daemonize yes/daemonize no/g" /etc/redis/redis.conf

# To preserve the logs for redis
RUN chown -R redis:redis /var/log/redis/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add to RUN above to avoid extra docker layer; these 2 are redis customisations that go together anyway
(even better to move those 2 steps into the whole install step above)


# Cleaning behind
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not needed if /opt/tmp_docker is cleaned up after use

RUN rm -fr /opt/tmp_docker

ADD supervisord.conf /etc/supervisor/supervisord.conf
ADD docker-entrypoint.sh /sbin/docker-entrypoint.sh

Expand Down
5 changes: 0 additions & 5 deletions docker/ubuntu1604/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,5 @@ then
[ -d /home/jenkins/.ssh ] && chown ${UID} /home/jenkins/.ssh
fi

# update alba & arakoon packages to latest/greatest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep this the same as for 14.04 (couldn't do this at the time this Dockerfile was created)


##apt-get update -qq
##apt-get install -qq -y alba arakoon

# finally execute the command the user requested
exec "$@"
6 changes: 6 additions & 0 deletions docker/ubuntu1604/supervisord.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ nodaemon=true

[program:rpcbind]
command=/sbin/rpcbind -f
startsecs=5
exitcodes=0

[program:redis]
command=bash -c "/usr/bin/redis-server /etc/redis/redis.conf"
startsecs=5
exitcodes=0

[program:omniNames]
command=bash -c "/usr/bin/omniNames -start -errlog /var/log/omniorb-nameserver.log || /usr/bin/omniNames -errlog /var/log/omniorb-nameserver.log"
startsecs=5
exitcodes=0