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