Skip to content

Commit

Permalink
Update Dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
marcdegraef committed Dec 12, 2023
1 parent 2d13374 commit 6994963
Showing 1 changed file with 6 additions and 74 deletions.
80 changes: 6 additions & 74 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,85 +1,17 @@
FROM ubuntu:jammy
FROM marcdegraef/emsoft_sdk

ARG TARGETARCH
ARG DEBIAN_FRONTEND=noninteractive

RUN if [ "$TARGETARCH" = "arm64" ]; then \
apt-get update && apt-get -y upgrade \
&& apt-get install -y \
git \
vim \
wget \
cmake \
gcc-aarch64-linux-gnu \
gfortran \
ninja-build \
build-essential \
libopenblas-dev \
apt-utils \
opencl-headers \
ocl-icd-opencl-dev \
ocl-icd-libopencl1 \
clinfo ; \
elif [ "$TARGETARCH" = "amd64" ]; then \
apt-get update && apt-get -y upgrade \
&& apt-get install -y \
git \
vim \
wget \
cmake \
gcc \
gfortran \
ninja-build \
build-essential \
libopenblas-dev \
apt-utils \
opencl-headers \
ocl-icd-opencl-dev \
ocl-icd-libopencl1 \
libpocl-dev \
intel-opencl-icd \
clinfo \
; fi

# intel-opencl-icd makes iGPUs work from Intel (tested on i5-8400)
# libpocl-dev is for CPU on both Intel and AMD

# set some environmental variables for the Nvidia container
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
# set up OpenCL for Nvidia
RUN mkdir -p /etc/OpenCL/vendors && \
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd

# clone EMsoft and set up SDK Debug/Release
RUN mkdir ~/EMs \
&& cd ~/EMs \
&& git clone https://github.com/EMsoft-org/EMsoftSuperbuild.git \
RUN cd ~/EMs \
&& git clone https://github.com/EMsoft-org/EMsoftData.git \
&& git clone https://github.com/EMsoft-org/EMsoft.git \
&& mkdir EMsoftBuild && mkdir GenEMsoftData && cd EMsoftSuperbuild && mkdir Debug Release

# EMsoftSuperbuild
RUN cd ~/EMs/EMsoftSuperbuild/Debug/ \
&& cmake -DEMsoft_SDK=/opt/EMsoft_SDK -DCMAKE_BUILD_TYPE=Debug ../ -G Ninja && ninja \
&& cd ../Release \
&& cmake -DEMsoft_SDK=/opt/EMsoft_SDK -DCMAKE_BUILD_TYPE=Release ../ -G Ninja && ninja
&& mkdir EMsoftBuild && mkdir EMPlay

# EMsoftBuild ... must use dynamic "shared" libraries for f90wrap later on

RUN if [ "$TARGETARCH" = "arm64" ]; then \
cd ~/EMs/EMsoftBuild/ && mkdir Debug Release && cd Debug \
&& cmake -DCMAKE_BUILD_TYPE=Debug -DEMsoft_SDK=/opt/EMsoft_SDK -DBUILD_SHARED_LIBS=OFF \
../../EMsoft -G Ninja \
&& ninja \
&& cd ../Release \
&& cmake -DCMAKE_BUILD_TYPE=Release -DEMsoft_SDK=/opt/EMsoft_SDK -DBUILD_SHARED_LIBS=OFF \
../../EMsoft -G Ninja \
&& ninja \
&& cd ~/EMs/GenEMsoftData && mkdir EMXtal \
&& cd ../../ && mkdir .config && cd .config && mkdir EMsoft && cd EMsoft && mkdir tmp && cd ../../ ; \
elif [ "$TARGETARCH" = "amd64" ]; then \
cd ~/EMs/EMsoftBuild/ && mkdir Debug Release && cd Debug \
RUN cd ~/EMs/EMsoftBuild/ && mkdir Debug Release && cd Debug \
&& cmake -DCMAKE_BUILD_TYPE=Debug -DEMsoft_SDK=/opt/EMsoft_SDK -DBUILD_SHARED_LIBS=OFF \
../../EMsoft -G Ninja \
&& ninja \
Expand All @@ -88,8 +20,8 @@ RUN if [ "$TARGETARCH" = "arm64" ]; then \
../../EMsoft -G Ninja \
&& ninja \
&& cd ~/EMs/GenEMsoftData && mkdir EMXtal \
&& cd ../../ && mkdir .config && cd .config && mkdir EMsoft && cd EMsoft && mkdir tmp && cd ../../ \
; fi
&& cd ../../ && mkdir .config && cd .config && mkdir EMsoft && cd EMsoft && mkdir tmp && cd ../../


# add release version to path
ENV PATH ~/EMs/EMsoftBuild/Release/Bin:$PATH
Expand Down

0 comments on commit 6994963

Please sign in to comment.