From c30e5e887bcd70c2ae5d83779a461535f0d8d15e Mon Sep 17 00:00:00 2001 From: MADELA Patrick <patrick.madela@synchrotron-soleil.fr> Date: Fri, 21 Feb 2025 13:41:43 +0100 Subject: [PATCH] Add automatic conan configuration at launch Fix build of conan-el7-gcc114 conda forge --- conan-el6-gcc44-x86/Dockerfile | 6 ++++++ conan-el6-gcc44/Dockerfile | 6 ++++++ conan-el6-gcc91-x86/Dockerfile | 2 +- conan-el6-gcc91/Dockerfile | 2 +- conan-el7-gcc112/Dockerfile | 2 +- conan-el7-gcc114-conda-forge/Dockerfile | 20 +++++++++++------- conan-el7-gcc115/Dockerfile | 28 +++++++++++++------------ conan-el7-gcc48-x86/Dockerfile | 6 ++++++ conan-el7-gcc48/Dockerfile | 6 ++++++ conan-el7-gcc93-x86/Dockerfile | 2 +- conan-el7-gcc93/Dockerfile | 2 +- conan-el9-gcc115/Dockerfile | 5 +++++ 12 files changed, 62 insertions(+), 25 deletions(-) diff --git a/conan-el6-gcc44-x86/Dockerfile b/conan-el6-gcc44-x86/Dockerfile index f1b5a07..1d3661f 100644 --- a/conan-el6-gcc44-x86/Dockerfile +++ b/conan-el6-gcc44-x86/Dockerfile @@ -60,3 +60,9 @@ 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 && \"$@\"", "-s"] + +# Lauch interactive shell by default +CMD ["bash"] \ No newline at end of file diff --git a/conan-el6-gcc44/Dockerfile b/conan-el6-gcc44/Dockerfile index ae80769..6c180d4 100644 --- a/conan-el6-gcc44/Dockerfile +++ b/conan-el6-gcc44/Dockerfile @@ -56,3 +56,9 @@ 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 && \"$@\"", "-s"] + +# Lauch interactive shell by default +CMD ["bash"] diff --git a/conan-el6-gcc91-x86/Dockerfile b/conan-el6-gcc91-x86/Dockerfile index 24616b2..471fa0f 100755 --- a/conan-el6-gcc91-x86/Dockerfile +++ b/conan-el6-gcc91-x86/Dockerfile @@ -59,6 +59,6 @@ COPY environment /etc/environment USER conan WORKDIR /home/conan -ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && linux32 -- \"$@\"", "-s"] +ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && linux32 -- \"$@\"", "-s"] CMD ["bash"] diff --git a/conan-el6-gcc91/Dockerfile b/conan-el6-gcc91/Dockerfile index 96e65d5..e1c5f01 100755 --- a/conan-el6-gcc91/Dockerfile +++ b/conan-el6-gcc91/Dockerfile @@ -55,6 +55,6 @@ COPY environment /etc/environment USER conan WORKDIR /home/conan -ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && \"$@\"", "-s"] +ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && \"$@\"", "-s"] CMD ["bash"] diff --git a/conan-el7-gcc112/Dockerfile b/conan-el7-gcc112/Dockerfile index fc4967d..e4dc5de 100644 --- a/conan-el7-gcc112/Dockerfile +++ b/conan-el7-gcc112/Dockerfile @@ -58,6 +58,6 @@ COPY environment /etc/environment USER conan WORKDIR /home/conan -ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-11 && \"$@\"", "-s"] +ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-11 && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && \"$@\"", "-s"] CMD ["bash"] diff --git a/conan-el7-gcc114-conda-forge/Dockerfile b/conan-el7-gcc114-conda-forge/Dockerfile index 5088318..b956190 100644 --- a/conan-el7-gcc114-conda-forge/Dockerfile +++ b/conan-el7-gcc114-conda-forge/Dockerfile @@ -1,4 +1,4 @@ -FROM gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48 +FROM centos:7 LABEL maintainer="Patrick Madela <patrick.madela@synchrotron-soleil.fr" @@ -6,9 +6,13 @@ RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localti # 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-* \ + # Update OS && yum update -y \ - && yum install -y curl bzip2 \ - && yum clean all \ + # Install epel repo + && yum -y install epel-release \ + # Install required packages + && yum install -y sudo unzip curl bzip2 \ + && yum clean all --enablerepo='*' \ # Add groups && groupadd g1001 -g 1001 \ && groupadd g1000 -g 1000 \ @@ -24,7 +28,7 @@ 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 +COPY ${MAMBA_ENV}-conda-forge/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 \ @@ -39,14 +43,16 @@ RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C # 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 + done \ + # Link home to sysroot (workaround for conan) + && ln -s /home /opt/micromamba/envs/${MAMBA_ENV}/x86_64-conda-linux-gnu/sysroot/home 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"] +ENTRYPOINT ["bash", "-c" ,"eval \"$(micromamba shell hook --shell bash)\" && micromamba activate ${MAMBA_ENV} && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && \"$@\"", "-s"] # Define default shell and activate environment SHELL ["/bin/bash", "-c"] @@ -54,4 +60,4 @@ RUN echo 'eval "$(micromamba shell hook --shell=bash)"' >> ~/.bashrc \ && echo 'micromamba activate ${MAMBA_ENV}' >> ~/.bashrc # Lauch interactive shell by default -CMD ["/bin/bash"] +CMD ["bash"] diff --git a/conan-el7-gcc115/Dockerfile b/conan-el7-gcc115/Dockerfile index 7540a78..d1c82b0 100644 --- a/conan-el7-gcc115/Dockerfile +++ b/conan-el7-gcc115/Dockerfile @@ -10,17 +10,27 @@ RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localti && yum -y update \ # Install epel repo && yum -y install epel-release \ - && yum -y install unzip sudo make glibc-devel \ - && yum clean all --enablerepo='*' + # Install required packages + && yum -y install sudo unzip curl bzip2 make glibc-devel \ + && yum clean all --enablerepo='*' \ + # 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 ARG PYTHON_VERSION=3.6.13 \ CONAN_VERSION=2.12.1 \ CMAKE_VERSION=3.31.5 \ GIT_VERSION=2.39.2 \ GCC_VERSION=11.5.0 \ - DEVTOOLS_ROOT=/usr/Local/devtools \ OS=linux \ - ARCH=x86_64 + ARCH=x86_64 \ + DEVTOOLS_ROOT=/usr/Local/devtools ENV PYTHON_ROOT=${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-${OS}-${ARCH} \ CONAN_ROOT=${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-${OS}-${ARCH} \ @@ -32,16 +42,8 @@ ENV PYTHON_ROOT=${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-${OS}-${ARCH} \ CXX=${DEVTOOLS_ROOT}/gcc-${GCC_VERSION}-${OS}-${ARCH}/bin/g++ \ CC=${DEVTOOLS_ROOT}/gcc-${GCC_VERSION}-${OS}-${ARCH}/bin/gcc -RUN 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 \ # Create devtools folder - && mkdir -p ${DEVTOOLS_ROOT} \ +RUN 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-x86_64 \ && unzip -q ${PYTHON_ROOT}.zip -d ${DEVTOOLS_ROOT} \ diff --git a/conan-el7-gcc48-x86/Dockerfile b/conan-el7-gcc48-x86/Dockerfile index 16bf1a8..3556285 100755 --- a/conan-el7-gcc48-x86/Dockerfile +++ b/conan-el7-gcc48-x86/Dockerfile @@ -60,3 +60,9 @@ 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 && \"$@\"", "-s"] + +# Lauch interactive shell by default +CMD ["bash"] diff --git a/conan-el7-gcc48/Dockerfile b/conan-el7-gcc48/Dockerfile index 97630a1..523e307 100755 --- a/conan-el7-gcc48/Dockerfile +++ b/conan-el7-gcc48/Dockerfile @@ -59,3 +59,9 @@ 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 && \"$@\"", "-s"] + +# Lauch interactive shell by default +CMD ["bash"] diff --git a/conan-el7-gcc93-x86/Dockerfile b/conan-el7-gcc93-x86/Dockerfile index 740e317..d5d62e6 100755 --- a/conan-el7-gcc93-x86/Dockerfile +++ b/conan-el7-gcc93-x86/Dockerfile @@ -59,6 +59,6 @@ COPY environment /etc/environment USER conan WORKDIR /home/conan -ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && linux32 -- \"$@\"", "-s"] +ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && linux32 -- \"$@\"", "-s"] CMD ["bash"] diff --git a/conan-el7-gcc93/Dockerfile b/conan-el7-gcc93/Dockerfile index b705389..be3f239 100755 --- a/conan-el7-gcc93/Dockerfile +++ b/conan-el7-gcc93/Dockerfile @@ -58,6 +58,6 @@ COPY environment /etc/environment USER conan WORKDIR /home/conan -ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && \"$@\"", "-s"] +ENTRYPOINT ["bash", "-c" ,"source scl_source enable devtoolset-9 && conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && \"$@\"", "-s"] CMD ["bash"] diff --git a/conan-el9-gcc115/Dockerfile b/conan-el9-gcc115/Dockerfile index 05f005f..738e5a4 100644 --- a/conan-el9-gcc115/Dockerfile +++ b/conan-el9-gcc115/Dockerfile @@ -59,3 +59,8 @@ USER conan WORKDIR /home/conan RUN mkdir -p /home/conan/.conan + +ENTRYPOINT ["bash", "-c" ,"conan config install --verify-ssl false --type git https://gitlab.synchrotron-soleil.fr/software-control-system/factory/conan/conan2-config.git && \"$@\"", "-s"] + +# Lauch interactive shell by default +CMD ["bash"] \ No newline at end of file -- GitLab