Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Dockerfile 3.34 KiB
FROM gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86

LABEL maintainer="Patrick Madela <patrick.madela@synchrotron-soleil.fr"

ARG PYTHON_VERSION=3.6.13 \
    CONAN_VERSION=2.12.1 \
    CMAKE_VERSION=3.31.5 \
    GIT_VERSION=2.39.2 \
    DEVTOOLS_ROOT=/usr/Local/devtools \
    OS=linux \
    ARCH=i686

ENV PYTHON_ROOT=${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-${OS}-${ARCH} \
    CONAN_ROOT=${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-${OS}-${ARCH} \
    CMAKE_ROOT=${DEVTOOLS_ROOT}/cmake-${CMAKE_VERSION}-${OS}-${ARCH} \
    GIT_ROOT=${DEVTOOLS_ROOT}/git-${GIT_VERSION}-${OS}-${ARCH} \
    PATH=${DEVTOOLS_ROOT}/bin:${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-${OS}-${ARCH}/bin:${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-${OS}-${ARCH}:${DEVTOOLS_ROOT}/cmake-${CMAKE_VERSION}-${OS}-${ARCH}/bin:${DEVTOOLS_ROOT}/git-${GIT_VERSION}-${OS}-${ARCH}/bin:${PATH} \
    LD_LIBRARY_PATH=${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-${OS}-${ARCH}/lib \
    CXX=/usr/bin/g++ \
    CC=/usr/bin/gcc

RUN groupadd 1001 -g 1001 \
    && groupadd 1000 -g 1000 \
    && groupadd 2000 -g 2000 \
    && groupadd 999 -g 999 \
    && useradd -ms /bin/bash conan -u 1000 -g 1001 -G 1000,2000,999 \
    # Add sudo for conan user
    && printf "conan:conan" | chpasswd \
    && printf "conan ALL= NOPASSWD: ALL\\n" >> /etc/sudoers \
    # Create devtools folder
    && mkdir -p ${DEVTOOLS_ROOT} \
    # Install python 3
    && curl -s -L -o ${PYTHON_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/3.6.13/download?job=linux-i686 \
    && unzip -q ${PYTHON_ROOT}.zip -d ${DEVTOOLS_ROOT} \
    && rm ${PYTHON_ROOT}.zip \
    # Install git
    && curl -s -L -o ${GIT_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/2.39.2/download?job=linux-i686 \
    && unzip -q ${GIT_ROOT}.zip -d ${DEVTOOLS_ROOT} \
    && rm ${GIT_ROOT}.zip \
    # Install cmake
    && curl -s -L -o ${CMAKE_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/cmake/-/jobs/artifacts/3.31.5/download?job=linux-i686 \
    && unzip -q ${CMAKE_ROOT}.zip -d ${DEVTOOLS_ROOT} \
    && rm ${CMAKE_ROOT}.zip \
    # Install conan
    && curl -s -L -o ${CONAN_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/conan/-/jobs/artifacts/2.12.1/download?job=linux-i686 \
    && unzip -q ${CONAN_ROOT}.zip -d ${DEVTOOLS_ROOT} \
    && rm ${CONAN_ROOT}.zip \
    # Install other tools
    && mkdir ${DEVTOOLS_ROOT}/bin \
    && curl -s -L -o ${DEVTOOLS_ROOT}/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-i386 \
    && curl -s -L -o ${DEVTOOLS_ROOT}/bin/yq https://github.com/mikefarah/yq/releases/download/v4.34.2/yq_linux_386 \
    && chmod +x ${DEVTOOLS_ROOT}/bin/* \
    # Force to use linux32 when Jenkins uses docker exec ... sh -c "..."
    && rm /bin/sh \
    && echo -e '#!/bin/bash\n/usr/bin/linux32 -- /bin/bash "$@"' > /bin/sh \
    && chmod +x /bin/sh

COPY environment /etc/environment 
USER conan
WORKDIR /home/conan

RUN mkdir -p /home/conan/.conan

# Enable conan configuration
ENTRYPOINT ["bash", "-c" ,"conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && linux32 -- \"$@\"", "-s"]

# Lauch interactive shell by default
CMD ["bash"]