diff --git a/Dockerfile b/Dockerfile
index 0be3a0c0161ac58086f583f02faa932d179eb81f..ac1298c697ea268c89fab00f854c2426146bd9ab 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,19 @@
-FROM aparapi/aparapi-native-builder-image
+FROM aparapi/opencl-cross-compiler
 
-RUN cd /usr/src && unzip /root/openjdk/windows64/openlogic-openjdk-8u272-b10-windows-x64.zip && cp -av /root/OpenCL_* /usr/src && cd /usr/src/OpenCL_ARM/aarch64 && ln -s libOpenCL.so.1.0.0 libOpenCL.so && cd /usr/src/OpenCL_ARM/armhf && ln -s libOpenCL.so.1.0.0 libOpenCL.so && cp -av /root/msys2-OpenCL-headers /usr/src && rm -rf /var/lib/apt/lists/*
+LABEL maintainer="Jeffrey Phillips Freeman the@jeffreyfreeman.me"
 
-COPY . /usr/src/app/
+RUN cd /usr/src && \
+    unzip /root/openjdk/windows64/openlogic-openjdk-8u272-b10-windows-x64.zip && \
+    cp -av /root/OpenCL_* /usr/src && \
+    cd /usr/src/OpenCL_ARM/aarch64 && \
+    ln -s libOpenCL.so.1.0.0 libOpenCL.so && \
+    cd /usr/src/OpenCL_ARM/armhf && \
+    ln -s libOpenCL.so.1.0.0 libOpenCL.so && \
+    cp -av /root/msys2-OpenCL-headers /usr/src && \
+    rm -rf /var/lib/apt/lists/*
+
+RUN mkdir -p /usr/src/app
 WORKDIR /usr/src/app
-RUN rm -rf /usr/src/app/.git && rm -rf /usr/src/app/java/.git
 
 # run in shell mode with ENV expansion
 CMD rm -rf .libs .libs32 .libs64 && ./buildMingW.sh && ./build.sh && ./buildArmLinux.sh
diff --git a/README.md b/README.md
index 945b530dab9d45a297a2a07a3f23f250ec564410..31b2899dbf421df923ec9c8d4cf88a7c6e080d6e 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ make
 Alternatively you can do the Linux and Windows compile via a Docker container by issuing the following command (equivelant to the above)
 
 ```
-UID=${UID} GID=${GID} docker-compose up
+UID=${UID} GID=${GID} docker-compose run --rm aparapi-native-builder
 ```
 
 Sometimes you need to add additional include directories to specify the location of the java JNI headers for your jdk. To do this add the following to your call of the configure script:
@@ -96,3 +96,10 @@ Open the project from MS Visual Studios, specifically the "Aparapi.sln" project
 From the drop down at the top select x64 or Win32 depending on which version you wish to compile, then build the solution.
 
 The DLL file will be in "Release/x64" for 64-bit or "Release" for 32-bit depending on the version you compile
+
+# Building the aparapi-native-builder docker image
+
+```
+UID=${UID} GID=${GID} docker-compose build
+UID=${UID} GID=${GID} docker-compose push
+```
diff --git a/docker-compose.yml b/docker-compose.yml
index 0bbdd8256a1d48fa79e799a09cec5511b9d9e04a..5cc2a979ab7dbf38bf9dd8e0f327d3b3118e4203 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,8 +1,8 @@
 version: '3'
 services:
-  aparapi_native_windows_builder:
-    container_name: aparapi_native_builder-worker
-    image: 'aparapi/aparapi-native-builder-image-worker:latest'
+  aparapi-native-builder:
+    container_name: aparapi_native_builder
+    image: 'aparapi/aparapi-native-builder'
     build:
       context: .
     user: "$UID:$GID"
diff --git a/prepare.sh b/prepare.sh
index 94bf000f7e76e9ac434a5b507752c1c0b6de47d8..87cf79b437dbe0c4751722423220a6479316fdaf 100755
--- a/prepare.sh
+++ b/prepare.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 mkdir include
-(cd java && mvn clean org.apache.maven.plugins:maven-compiler-plugin:compile -DskipTests=true -Dmaven.javadoc.skip=true)
+(cd java && mvn clean org.apache.maven.plugins:maven-compiler-plugin:compile -DskipTests=true -Dmaven.javadoc.skip=true && rm -rf \?)
 javah -jni -classpath ./java/target/classes -d include -force com.aparapi.internal.jni.ConfigJNI com.aparapi.internal.jni.KernelArgJNI com.aparapi.internal.jni.KernelRunnerJNI com.aparapi.internal.jni.OpenCLJNI com.aparapi.internal.jni.RangeJNI com.aparapi.Kernel com.aparapi.Range com.aparapi.Config com.aparapi.device.Device com.aparapi.device.OpenCLDevice com.aparapi.internal.kernel.KernelRunner com.aparapi.internal.opencl.OpenCLArgDescriptor com.aparapi.internal.opencl.OpenCLMem