diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..3a737f0
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,67 @@
+FROM ubuntu:jammy
+
+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 \
+ 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 --branch developOO https://github.com/ZacharyVarley/EMsoftSuperbuild.git \
+ && git clone https://github.com/EMsoft-org/EMsoftData.git \
+ && git clone https://github.com/EMsoft-org/EMsoftOO.git \
+ && mv EMsoftSuperbuild EMsoftOOSuperbuild \
+ && mkdir EMsoftOOBuild && mkdir GenEMsoftData && cd EMsoftOOSuperbuild && mkdir Debug Release
+
+# EMsoftSuperbuild
+RUN cd ~/EMs/EMsoftOOSuperbuild/Debug/ \
+ && cmake -DEMsoftOO_SDK=/opt/EMsoftOO_SDK -DCMAKE_BUILD_TYPE=Debug ../ -G Ninja && ninja \
+ && cd ../Release \
+ && cmake -DEMsoftOO_SDK=/opt/EMsoftOO_SDK -DCMAKE_BUILD_TYPE=Release ../ -G Ninja && ninja