aboutsummaryrefslogtreecommitdiff
path: root/Dockerfile
blob: 786945eb67bcf692ef6e5528fc3fc89f5e08e246 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
FROM centos:6.9

# Declare build-time environment

# Miniconda
ARG MC_BASE_PYTHON=py37
ARG MC_VERSION=4.8.2
ARG MC_PLATFORM=Linux
ARG MC_ARCH=x86_64
ARG MC_URL=https://repo.continuum.io/miniconda

# Conda root
ARG CONDA_VERSION=4.8.2
ARG CONDA_BUILD_VERSION
ARG CONDA_PACKAGES

# Pipeline definition
ARG SNAPSHOT_URL


# Declare environment
ENV OPT=/opt \
    HOME=/home/developer

ENV PYTHONUNBUFFERED=1 \
    MC_VERSION=${MC_VERSION} \
    MC_PLATFORM=${MC_PLATFORM} \
    MC_ARCH=${MC_ARCH} \
    MC_URL=${MC_URL} \
    MC_INSTALLER=Miniconda3-${MC_BASE_PYTHON}_${MC_VERSION}-${MC_PLATFORM}-${MC_ARCH}.sh \
    MC_PATH=${OPT}/conda \
    CONDA_VERSION=${CONDA_VERSION} \
    CONDA_BUILD_VERSION=${CONDA_BUILD_VERSION} \
    CONDA_PACKAGES=${CONDA_PACKAGES}

# Toolchain
RUN yum update -y && yum install -y \
        bzip2-devel \
        curl \
        gcc \
        gcc-c++ \
        gcc-gfortran \
        git \
        glibc-devel.i686 \
        glibc-devel \
        kernel-devel \
        libX11-devel \
        mesa-libGL \
        mesa-libGLU \
        ncurses-devel \
        subversion \
        sudo \
        wget \
        zlib-devel \
    && yum clean all

# Create 'developer' user
# Configure sudoers
RUN groupadd developer \
    && useradd -g developer -m -d $HOME -s /bin/bash developer \
    && echo "developer:developer" | chpasswd \
    && echo "developer ALL=(ALL)	NOPASSWD: ALL" >> /etc/sudoers

# Install Miniconda
# Reset permissions
RUN curl -q -O ${MC_URL}/${MC_INSTALLER} \
    && bash ${MC_INSTALLER} -b -p ${MC_PATH} \
    && rm -rf ${MC_INSTALLER} \
    && echo export PATH="${MC_PATH}/bin:\${PATH}" > /etc/profile.d/conda.sh \
    && chown -R developer: ${OPT} ${HOME}


# Configure Conda
ENV PATH "${MC_PATH}/bin:${PATH}"
USER developer

RUN conda config --set auto_update_conda false \
    && conda config --set always_yes true \
    && conda config --set quiet true \
    && conda config --set rollback_enabled false \
    && conda install --yes --quiet \
        conda=${CONDA_VERSION} \
        git \
        ${CONDA_PACKAGES} \
    && curl -LO ${SNAPSHOT_URL} \
    && conda env update -n base --file $(basename $SNAPSHOT_URL)

WORKDIR ${HOME}

CMD ["/bin/bash"]