Skip to content
Snippets Groups Projects
Commit 2ad29c92 authored by Riccardo Maria Bianchi's avatar Riccardo Maria Bianchi :sunny:
Browse files

Merge branch 'UpdateTo2510' into 'main'

Update image to 24.04 LTS (originally was: 24.10)

See merge request !1
parents c081d23d 81c66b2f
No related branches found
No related tags found
1 merge request!1Update image to 24.04 LTS (originally was: 24.10)
Pipeline #11696541 passed
......@@ -12,12 +12,13 @@
###################
variables:
UBUNTU_BASE_IMAGE: "ubuntu"
UBUNTU_BASE_IMAGE_TAG: "23.10"
UBUNTU_BASE_IMAGE_TAG: "24.04" # latest LTS release
WORK_DIR: "/tmp"
INSTALL_DIR: "/usr/local"
GEANT4_VERSION: "v11.2.0"
XercesC_VERSION: "3.2.3"
Coin_VERSION: "4.0.0"
XercesC_VERSION: "3.3.0"
Coin_VERSION: "4.0.2"
SOQT_VERSION: "1.6.2"
IMAGE_DESTINATION: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-base
......@@ -40,7 +41,7 @@ stages:
# https://docs.gitlab.com/ee/ci/docker/using_kaniko.html
- mkdir -p /kaniko/.docker
# Prepare Kaniko configuration file
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"},\"$(echo -n $CI_DEPENDENCY_PROXY_SERVER | awk -F[:] '{print $1}')\":{\"auth\":\"$(printf "%s:%s" ${CI_DEPENDENCY_PROXY_USER} "${CI_DEPENDENCY_PROXY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- echo "Going to push image to ${IMAGE_DESTINATION}"
# Build and push the image from the Dockerfile at the root of the project
......@@ -48,6 +49,7 @@ stages:
# See https://docs.gitlab.com/ee/ci/variables/predefined_variables.html for available variables
- >
/kaniko/executor
--force
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
--build-arg GEOMODEL_BASE_IMAGE="${UBUNTU_BASE_IMAGE}"
......@@ -57,6 +59,7 @@ stages:
--build-arg GEANT4_VERSION=${GEANT4_VERSION}
--build-arg XercesC_VERSION=${XercesC_VERSION}
--build-arg Coin_VERSION=${Coin_VERSION}
--build-arg SOQT_VERSION=${SOQT_VERSION}
--destination "${IMAGE_DESTINATION}"
# Print the full registry path of the pushed image
- echo "Image pushed successfully to ${IMAGE_DESTINATION}"
......
FROM ubuntu:23.10
ARG GEOMODEL_BASE_TAG
ARG GEOMODEL_BASE_IMAGE
FROM ${GEOMODEL_BASE_IMAGE}:${GEOMODEL_BASE_TAG}
ARG WORK_DIR
ARG INSTALL_DIR
ARG GEANT4_VERSION
ARG XercesC_VERSION
ARG Coin_VERSION
ARG SOQT_VERSION
#WORKDIR $WORK_DIR
### Install some basic components: git, wget..
RUN apt-get update -qq && \
apt-get install -y -qq \
apt-utils \
......@@ -17,10 +22,8 @@ RUN apt-get update -qq && \
wget \
unzip \
build-essential \
freeglut3-dev \
mercurial \
nlohmann-json3-dev \
libexpat1-dev \
apt-utils \
libssl-dev && \
apt-get clean all
......@@ -35,14 +38,21 @@ RUN apt-get update && apt-get install -y tzdata && ln -fs /usr/share/zoneinfo/Am
RUN apt-get update && apt-get install -y libboost-all-dev
### Install C++, cmake and python
RUN apt-get update && apt-get install -y cmake g++ python3 python-is-python3 git sudo nano wget
RUN apt-get update && apt-get install -y cmake g++ python3 python-is-python3 python3-pip python3-elasticsearch git sudo nano wget
### Install QT5 as a prerequiste of GeoModel
### Install QT5 and freeglut (OpenGL) as a prerequiste of GeoModel Visualization
RUN apt-get update && apt-get install -y qtbase5-dev libqt5opengl5-dev
RUN apt-get update && apt-get install -y freeglut3-dev
### Install sqlite for the GeoModel outputs
RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev
### Install GoogleTest for the GeoModel tests
RUN apt-get update && apt-get install -y libgtest-dev
### Install nlohmann-json to avoid the own installation
RUN apt-get update && apt-get install -y nlohmann-json3-dev
### Install eigen to avoid the own installation
RUN apt-get update && apt-get install -y libeigen3-dev
......@@ -53,44 +63,49 @@ RUN apt-get update && apt-get install -y libhdf5-dev
RUN apt-get update && apt-get install -y libhepmc3-dev
### Install xercesC
RUN wget https://cern.ch/lcgpackages/tarFiles/sources/xerces-c-${XercesC_VERSION}.tar.gz && \
tar -xzf xerces-c-${XercesC_VERSION}.tar.gz && \
mkdir build && \
cd build && \
cmake ../xerces-c-${XercesC_VERSION} && \
make -j4 && \
make install && \
cd .. && \
rm -rf xerces-c-${XercesC_VERSION} build
RUN mkdir -p build_xercesC && \
cd build_xercesC && \
wget -O xerces-c.tar.gz https://github.com/apache/xerces-c/archive/refs/tags/v${XercesC_VERSION}.tar.gz && \
tar -xzf xerces-c.tar.gz && \
mkdir build && \
cd build && \
cmake ../xerces-c-${XercesC_VERSION} && \
make -j4 && \
make install && \
cd ../../ && \
rm -rf build_xercesC
### Install the OpenGL module
RUN apt-get update && apt-get install -y mesa-utils build-essential libgl1-mesa-dev
### Install Coin
RUN pwd && \
ls && \
wget https://atlas-vp1.web.cern.ch/atlas-vp1/sources/coin-${Coin_VERSION}-src.zip && \
unzip coin-${Coin_VERSION}-src.zip -d coin-sources && \
mv coin-sources/* coin && \
mkdir build_coin && \
RUN mkdir -p build_coin && \
cd build_coin && \
wget https://github.com/coin3d/coin/releases/download/v${Coin_VERSION}/coin-${Coin_VERSION}-src.tar.gz && \
tar -xzf coin-${Coin_VERSION}-src.tar.gz && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ../coin && \
make -j4 && \
make install
make install && \
cd ../.. && \
rm -rf build_coin
### Install soqt
RUN pwd; ls && \
wget https://atlas-vp1.web.cern.ch/atlas-vp1/sources/soqt.zip && \
unzip soqt.zip && \
mkdir build_soqt && \
cd build_soqt && \
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ../soqt && \
make -j8 && \
make install && \
pwd; ls && \
ls ../ && \
ls ../../
mkdir -p build_soqt && \
cd build_soqt && \
wget https://github.com/coin3d/soqt/releases/download/v${SOQT_VERSION}/soqt-${SOQT_VERSION}-src.tar.gz && \
tar -xzf soqt-${SOQT_VERSION}-src.tar.gz && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ../soqt && \
make -j8 && \
make install && \
cd ../../ && \
rm -rf build_soqt && \
ls -lh
# Set up the ATLAS user, and give it super user rights.
......@@ -109,17 +124,19 @@ WORKDIR /workdir
### Install Geant4
RUN pwd && \
mkdir build_geant4 && \
cd build_geant4 && \
git clone https://gitlab.cern.ch/geant4/geant4.git && \
cd geant4 && \
git checkout tags/$GEANT4_VERSION && \
mkdir build_geant4 && \
cd build_geant4 && \
rm -rf * && \
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/geant4 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_GDML=ON -DGEANT4_BUILD_MULTITHREADED=ON ../ && \
cd .. && \
mkdir build && \
cd build && \
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/geant4 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_GDML=ON -DGEANT4_BUILD_MULTITHREADED=ON ../geant4 && \
make -j8 > /dev/null && \
sudo make install > /dev/null && \
cd .. && \
rm -rf build_geant4 geant4 && \
cd ../../ && \
rm -rf build_geant4 && \
ls ~/ && \
echo "Listing /usr/local" && \
ls /usr/local && \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment