Files
openstack-helm-images/libvirt/Dockerfile
Vladimir Kozhukalov e5de10eb18 Build 2025.2 libvirt images
Signed-off-by: Vladimir Kozhukalov <kozhukalov@gmail.com>
Change-Id: I54b67ab820cc06b5a08ecf5234131507e59013b3
2025-10-01 15:29:14 -05:00

74 lines
2.3 KiB
Docker

# syntax=docker/dockerfile:1.4
ARG FROM
FROM ${FROM}
FROM ${FROM} AS cloudarchive-generator
RUN <<EOF
set -xe
apt-get update
apt-get install -y lsb-release
apt-get clean
rm -rf /var/lib/apt/lists/*
EOF
ARG RELEASE
RUN <<EOF /bin/bash
set -xe
if [ "$(lsb_release -sc)" = "jammy" ]; then
if [[ "${RELEASE}" = "antelope" || "${RELEASE}" = "bobcat" || "${RELEASE}" = "caracal" ]]; then
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu $(lsb_release -sc)-updates/${RELEASE} main" > /etc/apt/sources.list.d/cloudarchive.list
else
echo "${RELEASE} is not supported on $(lsb_release -sc)"
exit 1
fi
elif [ "$(lsb_release -sc)" = "noble" ]; then
if [[ "${RELEASE}" = "dalmatian" || "${RELEASE}" = "epoxy" || "${RELEASE}" = "flamingo" ]]; then
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu $(lsb_release -sc)-updates/${RELEASE} main" > /etc/apt/sources.list.d/cloudarchive.list
else
echo "${RELEASE} is not supported on $(lsb_release -sc)"
exit 1
fi
else
echo "Unable to detect correct Ubuntu Cloud Archive repository for $(lsb_release -sc)"
exit 1
fi
EOF
FROM ${FROM} AS runtime
COPY --from=cloudarchive-generator --link /etc/apt/sources.list.d/cloudarchive.list /etc/apt/sources.list.d/cloudarchive.list
COPY ubuntu-keyring-2012-cloud-archive.gpg /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive.gpg
RUN <<EOF
set -xe
apt-get update
apt-get install -y --no-install-recommends \
ceph-common \
cgroup-tools \
dmidecode \
ebtables \
iproute2 \
ipxe-qemu \
kmod \
libvirt-clients \
libvirt-daemon-system \
openssh-client \
openvswitch-switch \
ovmf \
pm-utils \
qemu-system \
qemu-block-extra
# There is no qemu-efi in Ubuntu Noble
apt-get install -y --no-install-recommends qemu-efi || true
apt-get clean
rm -rf /var/lib/apt/lists/*
EOF
ARG PROJECT=nova
ARG UID=42424
ARG GID=42424
RUN set -ex ;\
groupadd -g ${GID} ${PROJECT} ;\
useradd -u ${UID} -g ${PROJECT} -M -d /var/lib/${PROJECT} -s /usr/sbin/nologin -c "${PROJECT} user" ${PROJECT} ;\
mkdir -p /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\
chown ${PROJECT}:${PROJECT} /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\
usermod -a -G kvm ${PROJECT}