diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 55eb67e2c8d94794cf304c18bc86dcd7df2781a5..dbaf0b4975c8e8eeaa06fd0cde107447d8a66235 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,7 @@ include:
   - local: deploy/build_env/services-windows/gitlab-ci-build-docker.yml
   - local: deploy/build_env/centos/gitlab-ci-build-docker.yml
   - local: deploy/build_env/debians/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/ubuntu/gitlab-ci-build-docker.yml
 
 .go-cache:
   variables:
@@ -108,8 +109,9 @@ build-packages-centos7:
     - when: always
   artifacts:
     paths:
-      - build/**/*.rpm
-      - build/**/*.tar.gz
+      - build/*.rpm
+      - build/**/dist/*.rpm
+      - build/**/dist/*.tar.gz
     expire_in: 3 hrs
 
 build-packages-centos8:
@@ -132,8 +134,9 @@ build-packages-centos8:
     - when: always
   artifacts:
     paths:
-      - build/**/*.rpm
-      - build/**/*.tar.gz
+      - build/*.rpm
+      - build/**/dist/*.rpm
+      - build/**/dist/*.tar.gz
     expire_in: 3 hrs
 
 build-packages-debian9:
@@ -156,8 +159,9 @@ build-packages-debian9:
     - when: always
   artifacts:
     paths:
-      - build/**/*.deb
-      - build/**/asapo*.tar.gz
+      - build/*.deb
+      - build/**/dist/*.deb
+      - build/**/dist/*.tar.gz
     expire_in: 3 hrs
 
 build-packages-debian10:
@@ -180,8 +184,9 @@ build-packages-debian10:
     - when: always
   artifacts:
     paths:
-      - build/**/*.deb
-      - build/**/asapo*.tar.gz
+      - build/*.deb
+      - build/**/dist/*.deb
+      - build/**/dist/*.tar.gz
     expire_in: 3 hrs
 
 build-packages-debian11:
@@ -200,12 +205,62 @@ build-packages-debian11:
     - make -j 1
   tags:
     - kubernetes-executor
+  rules:
+    - when: always
+    paths:
+      - build/*.deb
+      - build/**/dist/*.deb
+      - build/**/dist/*.tar.gz
+    expire_in: 3 hrs
+
+build-packages-ubuntu1804:
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu1804-build-env:latest
+    entrypoint: [""]
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=ON -DINSTALL_EXAMPLES=ON -DBUILD_CLIENTS_ONLY=ON -DPACKAGE_RELEASE_SUFFIX=ubuntu18.04 -DBUILD_PYTHON=OFF -DCPACK_PACKAGE_NAME="asapo-devel" -DCPACK_GENERATOR="DEB" ..
+    - make -j 4
+    - make package
+    - rm -f CMakeCache.txt
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=ON -DBUILD_CLIENTS_ONLY=ON -DNUMPY_VERSION=0 -DBUILD_PYTHON=ON -DPACKAGE_RELEASE_SUFFIX=ubuntu18.04 -DBUILD_PYTHON_PACKAGES="source;deb" -DBUILD_PYTHON2_PACKAGES=ON -DBUILD_PYTHON_DOCS=OFF ..
+    - make -j 1
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: always
+  artifacts:
+    paths:
+      - build/*.deb
+      - build/**/dist/*.deb
+      - build/**/dist/*.tar.gz
+    expire_in: 3 hrs
+
+build-packages-ubuntu2004:
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu2004-build-env:latest
+    entrypoint: [""]
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=ON -DINSTALL_EXAMPLES=ON -DBUILD_CLIENTS_ONLY=ON -DPACKAGE_RELEASE_SUFFIX=ubuntu20.04 -DBUILD_PYTHON=OFF -DCPACK_PACKAGE_NAME="asapo-devel" -DCPACK_GENERATOR="DEB" ..
+    - make -j 4
+    - make package
+    - rm -f CMakeCache.txt
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=ON -DBUILD_CLIENTS_ONLY=ON -DNUMPY_VERSION=0 -DBUILD_PYTHON=ON -DPACKAGE_RELEASE_SUFFIX=ubuntu20.04 -DBUILD_PYTHON_PACKAGES="source;deb" -DBUILD_PYTHON2_PACKAGES=OFF -DBUILD_PYTHON_DOCS=OFF ..
+    - make -j 1
+  tags:
+    - kubernetes-executor
   rules:
     - when: always
   artifacts:
     paths:
-      - build/**/*.deb
-      - build/**/asapo*.tar.gz
+      - build/*.deb
+      - build/**/dist/*.deb
+      - build/**/dist/*.tar.gz
     expire_in: 3 hrs
 
 build-services-docker:
diff --git a/deploy/build_env/debians/Dockerfile.gitlab.11 b/deploy/build_env/debians/Dockerfile.gitlab.11
index 9df51a6b27705a46750b4923fd12bcfb2ed603c6..02f38b59c4b32d266b65d82006f87a716050699a 100644
--- a/deploy/build_env/debians/Dockerfile.gitlab.11
+++ b/deploy/build_env/debians/Dockerfile.gitlab.11
@@ -1,6 +1,6 @@
-from debian:10
+from debian:11
 
-RUN echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list
 
 RUN set -eux; \
 	apt-get update; \
@@ -20,8 +20,8 @@ RUN set -eux; \
 		fakeroot \
 		wget \
 	; \
-	apt-get install -y --no-install-recommends cmake/buster-backports; \
+	apt-get install -y --no-install-recommends cmake/bullseye-backports; \
 	pip  --no-cache-dir install cython && pip3 --no-cache-dir install cython; \
 	rm -rf /var/lib/apt/lists/*
 
-ENV OS debian10.11
+ENV OS debian11.2
diff --git a/deploy/build_env/ubuntu/Dockerfile.gitlab.18.04 b/deploy/build_env/ubuntu/Dockerfile.gitlab.18.04
new file mode 100644
index 0000000000000000000000000000000000000000..b4793aead062be81202bdeefe2cd4a4e5693766d
--- /dev/null
+++ b/deploy/build_env/ubuntu/Dockerfile.gitlab.18.04
@@ -0,0 +1,25 @@
+from ubuntu:18.04
+
+RUN set -eux; \
+	apt-get update; \
+	DEBIAN_FRONTEND=noninteractive apt-get install -y \
+		build-essential \
+		libfabric-dev \
+		libcurl4-openssl-dev \
+		python3-all-dev \
+		python3-numpy \
+		python3-stdeb \
+		python3-pip \
+		python-all-dev \
+		python-numpy \
+		python-stdeb \
+		python-pip \
+		zlib1g-dev \
+		fakeroot \
+		wget \
+		cmake \
+	; \
+	pip  --no-cache-dir install cython && pip3 --no-cache-dir install cython; \
+	rm -rf /var/lib/apt/lists/*
+
+ENV OS ubuntu18.04
diff --git a/deploy/build_env/ubuntu/Dockerfile.gitlab.20.04 b/deploy/build_env/ubuntu/Dockerfile.gitlab.20.04
new file mode 100644
index 0000000000000000000000000000000000000000..8899c3e7c5df6119cc5b5a8b11c44c67811ba462
--- /dev/null
+++ b/deploy/build_env/ubuntu/Dockerfile.gitlab.20.04
@@ -0,0 +1,23 @@
+from ubuntu:20.04
+
+RUN set -eux; \
+	apt-get update; \
+	DEBIAN_FRONTEND=noninteractive apt-get install -y \
+		build-essential \
+		libfabric-dev \
+		libcurl4-openssl-dev \
+		python3-all-dev \
+		python3-numpy \
+		python3-stdeb \
+		cython3 \
+		dh-python \
+		zlib1g-dev \
+		fakeroot \
+		wget \
+		cmake \
+# needed as a workaround for a bug https://github.com/astraw/stdeb/issues/153
+		python-all \
+	; \
+	rm -rf /var/lib/apt/lists/*
+
+ENV OS ubuntu20.04
diff --git a/deploy/build_env/ubuntu/gitlab-ci-build-docker.yml b/deploy/build_env/ubuntu/gitlab-ci-build-docker.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6aa1c800de806cfdbe2896a370eb2917fdf59b4f
--- /dev/null
+++ b/deploy/build_env/ubuntu/gitlab-ci-build-docker.yml
@@ -0,0 +1,31 @@
+docker-create-asapo-packages-ubuntu1804-build-env:
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  stage: .pre
+  script:
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/deploy/build_env/ubuntu --dockerfile $CI_PROJECT_DIR/deploy/build_env/ubuntu/Dockerfile.gitlab.18.04 --destination $CI_REGISTRY_IMAGE/asapo-packages-ubuntu1804-build-env:${CI_COMMIT_SHORT_SHA} --destination $CI_REGISTRY_IMAGE/asapo-packages-ubuntu1804-build-env:latest
+  tags:
+    - kubernetes-executor
+  rules:
+    - changes:
+        - deploy/build_env/ubuntu/Dockerfile.gitlab.18.04
+      when: always
+    - when: never
+
+docker-create-asapo-packages-ubuntu2004-build-env:
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  stage: .pre
+  script:
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/deploy/build_env/ubuntu --dockerfile $CI_PROJECT_DIR/deploy/build_env/ubuntu/Dockerfile.gitlab.10 --destination $CI_REGISTRY_IMAGE/asapo-packages-ubuntu2004-build-env:${CI_COMMIT_SHORT_SHA} --destination $CI_REGISTRY_IMAGE/asapo-packages-ubuntu2004-build-env:latest
+  tags:
+    - kubernetes-executor
+  rules:
+    - changes:
+        - deploy/build_env/ubuntu/Dockerfile.gitlab.20.04
+      when: always
+    - when: never