|
1 | | -FROM python:3.11-slim-bullseye as builder |
| 1 | +FROM python:3.12-slim-bullseye as builder |
2 | 2 |
|
3 | | -RUN apt-get update -qq && apt-get install -q -y --no-install-recommends \ |
4 | | - build-essential ninja-build git \ |
5 | | - && apt-get clean \ |
6 | | - && rm -rf /var/lib/apt/lists/* |
7 | | - |
8 | | -# Install a more recent CMake version |
9 | | -RUN pip install cmake |
10 | | - |
11 | | -ARG CMAKE_CXX_STANDARD=20 |
12 | | -ARG GEANT4_VERSION=11.1.3 |
13 | | -ARG XERCES_VERSION=3.2.4 |
14 | | - |
15 | | -RUN git clone https://github.com/apache/xerces-c.git /tmp/xerces \ |
16 | | - && git -C /tmp/xerces checkout tags/v${XERCES_VERSION} \ |
17 | | - && cmake -G Ninja -B /tmp/xerces/build -S /tmp/xerces \ |
18 | | - -DCMAKE_INSTALL_PREFIX=/opt/xerces \ |
19 | | - -DCMAKE_CXX_STANDARD=20 \ |
20 | | - -DCMAKE_BUILD_TYPE=Release \ |
21 | | - -DBUILD_SHARED_LIBS=OFF \ |
22 | | - -Dnetwork-accessor=socket \ |
23 | | - -Dtranscoder=iconv \ |
24 | | - -DCMAKE_CXX_FLAGS=-fPIC \ |
25 | | - -DCMAKE_C_FLAGS=-fPIC \ |
26 | | - && cmake --build /tmp/xerces/build -j$(nproc) --target install \ |
27 | | - && rm -rf /tmp/xerces |
28 | | - |
29 | | -RUN git clone https://github.com/Geant4/geant4.git /tmp/geant4 --branch=v${GEANT4_VERSION} --depth=1 \ |
30 | | - && cmake -G Ninja -B /tmp/geant4/build -S /tmp/geant4 \ |
31 | | - -DCMAKE_INSTALL_PREFIX=/opt/geant4 \ |
32 | | - -DXERCESC_ROOT_DIR=/opt/xerces \ |
33 | | - -DCMAKE_CXX_STANDARD=20 \ |
34 | | - -DCMAKE_BUILD_TYPE=Release \ |
35 | | - -DGEANT4_USE_GDML=ON \ |
36 | | - -DGEANT4_INSTALL_EXAMPLES=OFF \ |
37 | | - -DGEANT4_INSTALL_DATA=OFF \ |
38 | | - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ |
39 | | - -DCMAKE_CXX_FLAGS=-fPIC \ |
40 | | - -DCMAKE_C_FLAGS=-fPIC \ |
41 | | - -DGEANT4_USE_SYSTEM_EXPAT=OFF \ |
42 | | - -DBUILD_STATIC_LIBS=ON \ |
43 | | - -DBUILD_SHARED_LIBS=OFF \ |
44 | | - && cmake --build /tmp/geant4/build -j$(nproc) --target install \ |
45 | | - && rm -rf /tmp/geant4 |
46 | | - |
47 | | -COPY . /source |
48 | | - |
49 | | -# Build and install |
50 | | -RUN bash /opt/geant4/bin/geant4.sh \ |
51 | | - && pip install /source \ |
52 | | - && rm -rf /source |
53 | | - |
54 | | -# Create the final image |
55 | | -FROM python:3.11-slim-bullseye |
56 | | - |
57 | | -# Copy installed Python package from the builder image |
58 | | -COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages |
| 3 | +RUN python -m pip install --no-cache-dir geant4-python-application |
59 | 4 |
|
60 | 5 | ENTRYPOINT ["python"] |
0 commit comments