diff --git a/ci/Dockerfile.in b/ci/Dockerfile.in
new file mode 100644
index 0000000000000000000000000000000000000000..440ad72e63e80dc31d60b45d0c512fc7b11b6d1c
--- /dev/null
+++ b/ci/Dockerfile.in
@@ -0,0 +1,3 @@
+FROM @BASE_IMAGE@
+RUN apt-get update
+# vim:set sw=4 sts=4 et ft=dockerfile:
diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile
index 7cef91e70eb6ff357903db2a0ec7ef3ef58ecc98..ef1f36684677bec7d2240facd91efba96975c351 100644
--- a/ci/Jenkinsfile
+++ b/ci/Jenkinsfile
@@ -66,8 +66,12 @@ pipeline {
             env.CI_DOCKER_OPTIONS = ''
           }
 
+          sh """
+          sed -e 's!@BASE_IMAGE@!${env.CI_DOCKER_REGISTRY}/${env.CI_DOCKER_IMAGE}!g' < src/ci/Dockerfile.in > src/ci/Dockerfile
+          """
+
           docker.withRegistry("https://${env.CI_DOCKER_REGISTRY}", dockerRegistryCred) {
-            docker.image("${env.CI_DOCKER_REGISTRY}/${env.CI_DOCKER_IMAGE}").inside("--mount type=tmpfs,destination=/var/cache/apt/archives ${env.CI_DOCKER_OPTIONS}") {
+            docker.build("${env.CI_DOCKER_REGISTRY}/pressure-vessel", '-f src/ci/Dockerfile').inside("--mount type=tmpfs,destination=/var/cache/apt/archives ${env.CI_DOCKER_OPTIONS}") {
               sh '''
               set -eu
               cd src