Skip to content

Ceph Libs

The ceph-client image is built from ContainerFiles/ceph-client. This image has no dedicated CVE script; security updates are included during the build.

This container packages the Ceph client for use in the stack. The build installs the required packages, applies security updates and configuration, and prepares the service for integration.

graph LR
    A[Base image] --> B[Install packages]
    B --> C[Apply CVE patches]
    C --> D[Configure Ceph Libs]
    D --> E[Container ready]
    Openstack_Venv --> A
ContainerFile used for the build
# syntax = docker/dockerfile:1
# This Dockerfile uses multi-stage build to customize DEV and PROD images:
# https://docs.docker.com/develop/develop-images/multistage-build/

ARG VENV_TAG=3.13-trixie-latest
ARG GHCR_URL=ghcr.io/rackerlabs
FROM ${GHCR_URL}/genestack-images/openstack-venv:${VENV_TAG} AS dependency_build
ARG CACHEBUST=0
WORKDIR /opt
RUN export DEBIAN_FRONTEND=noninteractive \
  && apt update && apt-get upgrade -y \
  && apt install --no-install-recommends -y \
                                            ca-certificates \
                                            lsb-release \
                                            curl \
                                            libxml2 \
  && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
  && apt-get clean -y \
  && rm -rf /var/lib/apt/lists/*

ARG VENV_TAG=3.13-trixie-latest
ARG GHCR_URL=ghcr.io/rackerlabs
ARG CEPH_VERSION=19.2.3-pve2
FROM ${GHCR_URL}/genestack-images/openstack-venv:${VENV_TAG}
LABEL maintainer="Rackspace"
LABEL vendor="Rackspace OpenStack Team"
LABEL org.opencontainers.image.name="ceph-client"
LABEL org.opencontainers.image.description="Ceph client packages built for the enterprise."

COPY --from=dependency_build /usr/local /usr/local
COPY --from=dependency_build /var/lib/openstack /var/lib/openstack

RUN export DEBIAN_FRONTEND=noninteractive \
           CEPH_KEY=https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg \
           CEPH_REPO="deb [signed-by=/usr/share/keyrings/ceph-keyring.gpg] http://download.proxmox.com/debian/ceph-squid trixie no-subscription" \
  && apt-get update && apt-get upgrade -y \
  && curl -o /usr/share/keyrings/ceph-keyring.gpg ${CEPH_KEY} \
  && echo "${CEPH_REPO}" >/etc/apt/sources.list.d/ceph.list \
  && cat /etc/apt/sources.list.d/ceph.list \
  && apt-get update && apt-get install --no-install-recommends -y \
                                            ceph-common=${CEPH_VERSION} \
                                            python3-ceph=${CEPH_VERSION} \
                                            python3-ceph-common=${CEPH_VERSION} \
                                            python3-cephfs=${CEPH_VERSION} \
                                            python3-rados=${CEPH_VERSION} \
                                            python3-rbd=${CEPH_VERSION} \
  && cd `/var/lib/openstack/bin/python -c 'import site;print(site.getsitepackages()[0])'` && ln -sf `/usr/bin/python3 -c 'import rados; print(rados.__file__)'` \
  && cd `/var/lib/openstack/bin/python -c 'import site;print(site.getsitepackages()[0])'` && ln -sf `/usr/bin/python3 -c 'import rbd; print(rbd.__file__)'` \
  && cd `/var/lib/openstack/bin/python -c 'import site;print(site.getsitepackages()[0])'` && ln -sf `/usr/bin/python3 -c 'import cephfs; print(cephfs.__file__)'` \
  && cd `/var/lib/openstack/bin/python -c 'import site;print(site.getsitepackages()[0])'` && ln -sf `/usr/bin/python3 -c 'import ceph_argparse; print(ceph_argparse.__file__)'` \
  && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
  && apt-get clean -y \
  && rm -rf /var/lib/apt/lists/* \
  && find / -name '*.pyc' -delete \
  && find / -name '*.pyo' -delete \
  && find / -name '__pycache__' -delete

ENV PATH="/usr/local/bin:/usr/local/sbin:/var/lib/openstack/bin:$PATH"
WORKDIR /var/lib/openstack

Build Arguments

Argument Default
VENV_TAG 3.12-latest
CACHEBUST 0
CEPH_VERSION 19.2.3-pve2
Build Command
docker build \
--build-arg VENV_TAG=3.12-latest \
--build-arg CACHEBUST=0 \
--build-arg CEPH_VERSION=19.2.3-pve2 \
-f ContainerFiles/ceph-client \
-t ceph-client:local \
.

Dependencies

Container Image

The container image is available on Github Container Registry.