Includes:
- Dockerfile changes
- Dockerfile clean up
- Fix execution privileges of files used from Dockerfile.
- New Dockerfile entrypoint to replace with_user script
- Defined a placeholders for CPU testing (script and Dockerfile)
- Jenkinsfile
- Jenkins file milestone defined
- Single source code checkout and propagation via stash/unstash
- Bash needs to be explicitly used in launching make build, since we need
access to environment
- Jenkinsfile build factory for cmake and make style of jobs
- Archivation of artifacts (*.so, *.whl, *.egg) produced by cmake build
Missing:
- CPU testing
- Python3 env build and testing
50 lines
1.3 KiB
Docker
50 lines
1.3 KiB
Docker
FROM ubuntu:14.04
|
|
|
|
# Environment
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
# Install all basic requirements
|
|
RUN \
|
|
apt-get update -q -y && \
|
|
apt-get -y dist-upgrade && \
|
|
apt-get -y --no-install-recommends install \
|
|
build-essential \
|
|
wget \
|
|
unzip \
|
|
gfortran \
|
|
# BLAS
|
|
libatlas-base-dev \
|
|
# Python 2
|
|
python-setuptools \
|
|
python-pip \
|
|
python-dev \
|
|
&& \
|
|
# CMake
|
|
wget http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz && \
|
|
tar -xvzf cmake-3.5.2.tar.gz && \
|
|
cd cmake-3.5.2/ && ./configure && make && make install && cd ../ && \
|
|
# Clean up
|
|
rm -rf cmake-3.5.2/ && rm -rf cmake-3.5.2.tar.gz && \
|
|
apt-get clean && \
|
|
rm -rf /var/cache/apt/*
|
|
|
|
|
|
# Install Python packages
|
|
RUN pip install numpy nose scipy scikit-learn wheel
|
|
|
|
ENV GOSU_VERSION 1.10
|
|
|
|
# Install lightweight sudo (not bound to TTY)
|
|
RUN set -ex; \
|
|
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \
|
|
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" && \
|
|
chmod +x /usr/local/bin/gosu && \
|
|
gosu nobody true
|
|
|
|
# Default entry-point to use if running locally
|
|
# It will preserve attributes of created files
|
|
COPY entrypoint.sh /scripts/
|
|
|
|
WORKDIR /workspace
|
|
ENTRYPOINT ["/scripts/entrypoint.sh"]
|