diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 087e960db1c14602bf32c99fe367ce893c83e759..b6e0fa5d1e3d831db3a24c10615238f637450454 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,10 +1,32 @@
 stages:
+ - docker
  - test
 
 
-.test: &test_template
+# Build docker image used for unit tests
+build-dev-docker-image:
+  stage: docker
+  image: docker:latest
+  tags:
+    - docker_build
+  services:
+    - docker:dind
+  when: manual
+  allow_failure: true
+
+  script:
+    - mkdir -p $HOME/.docker/
+    - echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
+    - TAG="$(date +%Y%m%d).${CI_COMMIT_SHORT_SHA}"
+    - IMAGE="pauldmccarthy/bip-dev"
+    - DOCKERFILE=docker/Dockerfile
+    - docker build -t "${IMAGE}:${TAG}" -t "${IMAGE}:latest" -f ${DOCKERFILE} ./docker
+    - docker push "${IMAGE}:${TAG}"
+    - docker push "${IMAGE}:latest"
+
+test:
   stage: test
-  image: continuumio/miniconda3
+  image: pauldmccarthy/bip-dev
   tags:
     - docker
   except:
@@ -12,9 +34,3 @@ stages:
     - merge_requests
   script:
     - ./.ci/unit_tests.sh
-
-
-test:3.11:
-  variables:
-    PYTHON_VERSION : "3.11"
-  <<: *test_template
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..ffdcafaa921c83238e8451048bf59f49eda94158
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,8 @@
+FROM continuumio/miniconda3
+MAINTAINER Paul McCarthy <pauldmccarthy@gmail.com>
+
+ENV PYTHON_VERSION "3.11"
+
+COPY /create_dev_env.sh /create_dev_env.sh
+
+RUN /bin/bash /create_dev_env.sh /dev.env
diff --git a/.ci/create_dev_env.sh b/docker/create_dev_env.sh
similarity index 97%
rename from .ci/create_dev_env.sh
rename to docker/create_dev_env.sh
index 8b1b978530e29f3ea2ae0643857bb2d8c258dd7a..0f3f5b3f3ed5b6bc6951fce5aa9d5a43bd2e4770 100755
--- a/.ci/create_dev_env.sh
+++ b/docker/create_dev_env.sh
@@ -23,3 +23,5 @@ source activate ${envdir}
 pip install dmri-amico
 pip install git+https://git.fmrib.ox.ac.uk/ndcn0236/pipe-tree.git
 pip install git+https://git.fmrib.ox.ac.uk/fsl/gradunwarp.git
+
+# CREATE DOCKER IMAGE