|
|
@@ -32,7 +32,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
# Libs scientifiques PDI
|
|
|
libhdf5-dev libz-dev \
|
|
|
# X11 & Xvfb (Pour ProfileView headless)
|
|
|
- libx11-6 libxext6 libxrender1 libxtst6 xauth xvfb \
|
|
|
+ libx11-6 libxext6 libxrender1 libxtst6 xauth xvfb dbus-x11 \
|
|
|
# OpenGL Logiciel (Indispensable pour GTK4 dans Docker)
|
|
|
libgl1-mesa-dri libgl1 \
|
|
|
# Dépendances GTK4 / Cairo / GDK complètes
|
|
|
@@ -130,35 +130,36 @@ RUN git clone --depth 1 https://github.com/pdidev/pdi.git . && \
|
|
|
# # On applique aussi sur libjulia-internal par sécurité
|
|
|
# find $JULIA_PATH -name "libjulia-internal.so*" -exec patchelf --clear-execstack {} \; && \
|
|
|
# find $JULIA_PATH -type f -name "*.so*" -exec patchelf --clear-execstack {} \;
|
|
|
-
|
|
|
+ENV LD_LIBRARY_PATH=/usr/local/julia/lib:/usr/local/julia/lib/julia:/usr/local/lib:/usr/lib/x86_64-linux-gnu
|
|
|
ENV GKSwstype=100
|
|
|
ENV JULIA_PKG_PRECOMPILE_AUTO=0
|
|
|
ENV JULIA_PKG_USE_CLI_GIT=true
|
|
|
-# RUN julia -e 'import Pkg; \
|
|
|
-# Pkg.add([ \
|
|
|
-# "HDF5"])'
|
|
|
-# RUN xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24 -nolisten tcp" \
|
|
|
-# julia -e 'import Pkg; \
|
|
|
-# Pkg.add([ \
|
|
|
+ RUN julia -e 'import Pkg; \
|
|
|
+ Pkg.add([ \
|
|
|
+ "HDF5"])'
|
|
|
+ RUN xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24 -nolisten tcp" \
|
|
|
+ julia -e 'import Pkg; \
|
|
|
+ Pkg.add([ \
|
|
|
# "Plots", \
|
|
|
-# "DataFrames", \
|
|
|
-# "Gtk4", \
|
|
|
-# "Gtk", \
|
|
|
-# "ProfileView", \
|
|
|
-# "PProf", \
|
|
|
-# "Reexport" \
|
|
|
-# ])'
|
|
|
+ "DataFrames", \
|
|
|
+ "Gtk4", \
|
|
|
+ "Gtk", \
|
|
|
+ "ProfileView", \
|
|
|
+ "PProf", \
|
|
|
+ "Reexport" \
|
|
|
+ ])'
|
|
|
|
|
|
# ÉTAPE B : ACTION CORRECTIVE CRITIQUE
|
|
|
# Pkg.add a téléchargé des artifacts (.so) qui violent la sécurité execstack.
|
|
|
# On doit les patcher AVANT que Julia ne tente de les charger pour la précompilation.
|
|
|
#RUN echo "Patching des artifacts téléchargés dans .julia..." && \
|
|
|
# find /root/.julia -name "*.so*" -exec patchelf --clear-execstack {} \;
|
|
|
-
|
|
|
+ENV LD_LIBRARY_PATH = ""
|
|
|
# ÉTAPE C : Précompilation (Maintenant c'est sûr)
|
|
|
# On utilise xvfb-run car Gtk/ProfileView ont besoin d'un serveur X, même virtuel.
|
|
|
-#RUN xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24 -nolisten tcp" \
|
|
|
-# julia -e 'import Pkg; Pkg.precompile()'
|
|
|
+RUN xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24 -nolisten tcp" \
|
|
|
+ julia -e 'import Pkg; Pkg.precompile()'
|
|
|
+ENV LD_LIBRARY_PATH=/usr/local/julia/lib:/usr/local/julia/lib/julia:/usr/local/lib:/usr/lib/x86_64-linux-gnu
|
|
|
# -----------------------------------------------------------------------------
|
|
|
# 5. Création de l'utilisateur (Structure décomposée conservée)
|
|
|
# -----------------------------------------------------------------------------
|