ci: add image build jobs (#1051)

Signed-off-by: Mohammed Naser <mnaser@vexxhost.com>
diff --git a/images/barbican/Dockerfile b/images/barbican/Dockerfile
new file mode 100644
index 0000000..046f67e
--- /dev/null
+++ b/images/barbican/Dockerfile
@@ -0,0 +1,19 @@
+FROM git AS barbican
+ARG BARBICAN_GIT_REF
+ADD --keep-git-dir=true https://opendev.org/openstack/barbican.git#${BARBICAN_GIT_REF} /src
+RUN git fetch --unshallow
+
+FROM openstack-venv-builder AS build
+COPY --from=barbican --link /src /src/barbican
+ARG TARGETARCH
+ARG TARGETVARIANT
+RUN \
+    --mount=type=cache,id=pip-$TARGETARCH$TARGETVARIANT-$RELEASE-cache,sharing=locked,target=/root/.cache/pip <<EOF bash -xe
+pip3 install \
+    --constraint /upper-constraints.txt \
+        /src/barbican \
+        pykmip
+EOF
+
+FROM openstack-runtime
+COPY --from=build --link /var/lib/openstack /var/lib/openstack
diff --git a/images/barbican/Earthfile b/images/barbican/Earthfile
deleted file mode 100644
index 55f4d5d..0000000
--- a/images/barbican/Earthfile
+++ /dev/null
@@ -1,20 +0,0 @@
-VERSION 0.7
-
-ARG --global PROJECT=barbican
-ARG --global RELEASE=2023.2
-ARG --global PROJECT_REF=a00fcade4138ffc52cd9c84b5999297966f019b5
-
-build:
-  FROM ../openstack-service+builder --RELEASE=${RELEASE}
-  DO ../openstack-service+BUILD_VENV \
-    --PROJECT=${PROJECT} \
-    --PROJECT_REF=${PROJECT_REF} \
-    --PIP_PACKAGES="pykmip"
-
-image:
-  FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
-  COPY +build/venv /var/lib/openstack
-  ARG REGISTRY=ghcr.io/vexxhost/atmosphere
-  SAVE IMAGE --push \
-    ${REGISTRY}/${PROJECT}:${RELEASE} \
-    ${REGISTRY}/${PROJECT}:${PROJECT_REF}