[BUILD] Dockerfile and Jenkinsfile revisited (#2514)
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
This commit is contained in:
committed by
Rory Mitchell
parent
66874f5777
commit
33ee7d1615
49
tests/ci_build/Dockerfile.cpu
Normal file
49
tests/ci_build/Dockerfile.cpu
Normal file
@@ -0,0 +1,49 @@
|
||||
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"]
|
||||
Reference in New Issue
Block a user