diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..6b8710a711f3b689885aa5c26c6c06bde348e82b
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+.git
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7abc41f954ae08c41bf0f9bf3c085ce6805a6a6b..687b9240c13972bca51d903268282ac5e2e72aa4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,23 @@
 tests:
   script:
     - cd tests && make
+
+docker_image:
+  when: manual
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  variables:
+    DOCKER_FILE: Dockerfile
+  before_script:
+    - COMMIT_BRANCH=$( echo "$CI_COMMIT_BRANCH" |
+      tr [:upper:] [:lower:] | tr '/' '_' )
+    - REGISTRY_IMAGE=$( echo "$CI_REGISTRY_IMAGE" | tr [:upper:] [:lower:] )
+  script:
+    - mkdir -p /kaniko/.docker
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",
+      \"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --context $CI_PROJECT_DIR
+      --dockerfile $CI_PROJECT_DIR/$DOCKER_FILE
+      --destination ${REGISTRY_IMAGE}/${COMMIT_BRANCH}:latest
+      --destination ${REGISTRY_IMAGE}/${COMMIT_BRANCH}:${CI_COMMIT_SHORT_SHA}
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..cd406502420378afdfb29836df7a915290784a58
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,6 @@
+FROM texlive/texlive:TL2021-historic
+
+# install local juelich theme
+# RUN mkdir -p ~/texmf/tex/latex/beamertheme-juelich/
+ADD . /usr/local/texlive/texmf-local/tex/latex/beamertheme-juelich/
+RUN texhash