|
|
@@ -2,19 +2,26 @@
|
|
|
FROM julia:1.10-bookworm
|
|
|
|
|
|
# Métadonnées
|
|
|
-LABEL maintainer="CodeBuddy"
|
|
|
+LABEL maintainer="jmbatto"
|
|
|
LABEL description="Environnement de portage Julia -> C avec PDI/HDF5 et Outils graphiques"
|
|
|
|
|
|
# Arguments pour gérer l'utilisateur (évite les fichiers root sur le host)
|
|
|
-ARG USER_ID=1000
|
|
|
-ARG GROUP_ID=1000
|
|
|
-ARG USER_NAME=engineer
|
|
|
+ARG USER_ID=1001
|
|
|
+ARG GROUP_ID=1001
|
|
|
+ARG USER_NAME=coder
|
|
|
|
|
|
# 1. Installation des dépendances système (C/C++, HDF5, Outils graphiques, Build tools)
|
|
|
# Nous incluons gdb et valgrind pour la rigueur du C.
|
|
|
# Nous incluons les libs X11 pour l'affichage des plots.
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
build-essential \
|
|
|
+ nano \
|
|
|
+ sudo \
|
|
|
+ lsof \
|
|
|
+ gawk \
|
|
|
+ emacs \
|
|
|
+ jq \
|
|
|
+ neofetch \
|
|
|
cmake \
|
|
|
git \
|
|
|
libhdf5-dev \
|
|
|
@@ -29,8 +36,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
libxtst6 \
|
|
|
xauth \
|
|
|
ca-certificates \
|
|
|
+ iputils-ping \
|
|
|
+ pkg-config \
|
|
|
+ colordiff \
|
|
|
+ mpi-default-dev \
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
+# Configuration de l'environnement pour PDI
|
|
|
+ENV PDI_DIR=/usr/local
|
|
|
+ENV LD_LIBRARY_PATH=/usr/local/lib
|
|
|
+ENV CPATH=/usr/local/include
|
|
|
+ENV PREFIX=/usr/local
|
|
|
# 2. Installation de PDI (Build from source pour exclure MPI et garantir HDF5)
|
|
|
# Nous clonons, configurons et installons PDI dans /usr/local
|
|
|
WORKDIR /tmp/pdi-build
|
|
|
@@ -40,6 +56,9 @@ RUN git clone https://github.com/pdidev/pdi.git . && \
|
|
|
-DBUILD_MPI=OFF \
|
|
|
-DBUILD_DECL_HDF5_PLUGIN=ON \
|
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
|
+ -DBUILD_FORTRAN=OFF \
|
|
|
+ -DBUILD_HDF5_PARALLEL=OFF \
|
|
|
+ -DBUILD_NETCDF_PARALLEL=OFF \
|
|
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
|
|
.. && \
|
|
|
make -j$(nproc) && \
|
|
|
@@ -56,10 +75,7 @@ RUN julia -e 'import Pkg; Pkg.add(["HDF5", "Plots", "DataFrames"]); Pkg.precompi
|
|
|
RUN groupadd -g ${GROUP_ID} ${USER_NAME} && \
|
|
|
useradd -m -u ${USER_ID} -g ${USER_NAME} -s /bin/bash ${USER_NAME}
|
|
|
|
|
|
-# Configuration de l'environnement pour PDI
|
|
|
-ENV PDI_DIR=/usr/local
|
|
|
-ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
|
|
-ENV CPATH=/usr/local/include:$CPATH
|
|
|
+
|
|
|
|
|
|
# Passage à l'utilisateur
|
|
|
USER ${USER_NAME}
|