Skip to content
Snippets Groups Projects
Select Git revision
  • 0ed261f85eeb8d91b7d8821785590d27e95fd32d
  • main default protected
  • 2.12.1
  • 2.6.0
  • 2.4.1
  • 2.0.17
  • 2.0.13
  • 2.0.10
  • 2.0.8
  • 2.0.7
  • 2.0.5
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.1
  • 1.59.0
  • 1.57.0
  • 1.55.0
  • 1.54.0
19 results

Dockerfile

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Dockerfile 2.45 KiB
    FROM gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48
    
    LABEL maintainer="Patrick Madela <patrick.madela@synchrotron-soleil.fr"
    
    RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime \
        # Fix Centos repo urls
        && sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* \
        && sed -i 's|#\s*baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* \
        && yum update -y \
        && yum install -y curl bzip2 \
        && yum clean all \
        # Add groups
        && groupadd g1001 -g 1001 \
        && groupadd g1000 -g 1000 \
        && groupadd g2000 -g 2000 \
        # Creation of conan user
        && 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
    
    ENV MAMBA_ROOT_PREFIX=/opt/micromamba
    ENV PATH=${MAMBA_ROOT_PREFIX}/bin-wrappers:$PATH
    ENV MAMBA_ENV=conan-el7-gcc114
    
    # Configure micromamba environment
    COPY ${MAMBA_ENV}/environment.yml /tmp/environment.yml
    
    # Install micromamba
    RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C /usr/local/bin --strip-components=1 bin/micromamba \
        # Install environment with micromamba
        && micromamba create -y -f /tmp/environment.yml \
        && rm /tmp/environment.yml \
        # Install wrapper to launch commands using micromamba for Jenkins (docker exec)
        && mkdir -p /opt/micromamba/bin-wrappers \
        && echo '#!/bin/bash' > /opt/micromamba/bin-wrappers/micromamba-wrapper.sh \
        && echo 'exec /usr/local/bin/micromamba run -n ${MAMBA_ENV} $(basename $0) "$@"' >> /opt/micromamba/bin-wrappers/micromamba-wrapper.sh \
        && chmod +x /opt/micromamba/bin-wrappers/micromamba-wrapper.sh \
        # Link all binaries to wrapper
        && for bin in $(ls /opt/micromamba/envs/${MAMBA_ENV}/bin); do \
        ln -s micromamba-wrapper.sh /opt/micromamba/bin-wrappers/$bin; \
        done
    
    COPY environment /etc/environment 
    USER conan
    WORKDIR /home/conan
    
    # Activate environment when launching command 
    ENTRYPOINT ["bash", "-c" ,"eval \"$(micromamba shell hook --shell bash)\" && micromamba activate ${MAMBA_ENV} && \"$@\"", "-s"]
    
    # Define default shell and activate environment
    SHELL ["/bin/bash", "-c"]
    RUN echo 'eval "$(micromamba shell hook --shell=bash)"' >> ~/.bashrc \
        && echo 'micromamba activate ${MAMBA_ENV}' >> ~/.bashrc
    
    # Lauch interactive shell by default
    CMD ["/bin/bash"]