xgboost/tests/ci_build/Dockerfile.cpu
Michal Malohlava 33ee7d1615 [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
2017-07-13 17:51:47 +12:00

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"]