Select Git revision
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"]