diff --git a/.gitlab/ci/hydra/Dockerfile b/.gitlab/ci/hydra/Dockerfile
index 79d7efb9d59220f217601938dc6664f4fe306371..df1c6af0bdda1683b8d7a8522f446e2e59081a0b 100644
--- a/.gitlab/ci/hydra/Dockerfile
+++ b/.gitlab/ci/hydra/Dockerfile
@@ -3,7 +3,7 @@
 
 # This Dockerfile is only used for testing CI/CD testing and is not used in
 # production.
-FROM oryd/hydra:latest
+FROM oryd/hydra:v1.10.7-alpine
 
 # Set DSN in Dockerfile, as services variables in CI/CD testing as shared
 # between services and the DSN is different for different services.
diff --git a/.gitlab/ci/kratos/Dockerfile b/.gitlab/ci/kratos/Dockerfile
index b0d345f00f2b995de03d67cec0d43b30537e83f4..61d4f9190f839572396f29843f09a2b50f3eed5f 100644
--- a/.gitlab/ci/kratos/Dockerfile
+++ b/.gitlab/ci/kratos/Dockerfile
@@ -3,7 +3,7 @@
 
 # This Dockerfile is only used for testing CI/CD testing and is not used in
 # production.
-FROM oryd/kratos:latest
+FROM oryd/kratos:v0.8.0-alpha.3
 
 # Set DSN in Dockerfile, as services variables in CI/CD testing as shared
 # between services and the DSN is different for different services.
diff --git a/.gitlab/ci/postgres/Dockerfile b/.gitlab/ci/postgres/Dockerfile
index 3f567afad9a68c926a9f6df24461485f43f59f4b..7d33ad59e83354cba32639841d50ca7089e51bee 100644
--- a/.gitlab/ci/postgres/Dockerfile
+++ b/.gitlab/ci/postgres/Dockerfile
@@ -4,7 +4,7 @@
 # This Dockerfile is only used for testing CI/CD testing and is not used in
 # production.
 
-FROM postgres:latest
+FROM postgres:bullseye
 
 # Copy our setup SQL to the image to create databases at setup/first run
 COPY setup.sql /docker-entrypoint-initdb.d/setup.sql