diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d941bded289b20bb384bba4f985d6646d5de0d2f..de5c465da384d3af16e16c3d30272268ef28d28c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,30 +14,25 @@ before_script:
         bison \
         build-essential \
         curl \
-        dosfstools \
         flex \
         fuse \
-        genisoimage \
         git \
-        gnupg \
         libfuse-dev \
         nasm \
-        parted \
         pkg-config \
-        software-properties-common \
-        syslinux \
-        syslinux-utils \
         texinfo \
-        wget &&
+        wget \
+        zstd &&
     curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
 
 img:
     script:
      - |
         source "$HOME/.cargo/env" &&
-        cargo install --version 0.1.1 cargo-config &&
-        cargo install --version 1.16.0 just &&
-        cargo install --version 0.26.0 cbindgen &&
+        curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash &&
+        cargo binstall --no-confirm --version 0.1.1 cargo-config &&
+        cargo binstall --no-confirm --version 1.16.0 just &&
+        cargo binstall --no-confirm --version 0.26.0 cbindgen &&
         cargo build --manifest-path installer/Cargo.toml --release &&
         make ci-img IMG_TAG=$CI_COMMIT_REF_NAME REPO_BINARY=1
     artifacts:
diff --git a/mk/ci.mk b/mk/ci.mk
index 976343a5f32cabbcd6461dce943b2f0c9894aa11..1dbb3ef4ab231c4a19a5a55466af83215955e8cf 100644
--- a/mk/ci.mk
+++ b/mk/ci.mk
@@ -8,6 +8,7 @@ ci-img: FORCE
 	rm -rf $(IMG_DIR)
 	mkdir -p $(IMG_DIR)
 	$(MAKE) demo desktop server
+	cd $(IMG_DIR) && zstd --rm *
 	cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
 
 # The name of the target must match the name of the filesystem config file