From 9532210a6903370f7eab04f07e6993544340963f Mon Sep 17 00:00:00 2001 From: Michael Mraka Date: Mon, 18 May 2026 16:06:01 +0200 Subject: [PATCH] PoC: use hummingbird images --- Dockerfile | 47 ++++++++++++++++++++++++++--------------- docker-compose.test.yml | 2 +- vmaas-go/go.mod | 2 +- vmaas-go/go.sum | 4 ++-- 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index b544dd97a..fec749b18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,15 @@ ARG ALT_REPO -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.7-1778562320@sha256:12db9874bd753eb98b1ab3d840e75de5d6842ac0604fbd68c012adefe97140be AS buildimg +FROM registry.access.redhat.com/hi/go:1.25.9-builder as go-builder ARG ALT_REPO +USER root + ARG VAR_RPMS="" RUN (microdnf module enable -y postgresql:16 || curl -o /etc/yum.repos.d/postgresql.repo $ALT_REPO) && \ microdnf install -y --setopt=install_weak_deps=0 --setopt=tsflags=nodocs \ - go-toolset rpm-devel python3.12-pip cargo rust python3.12-devel libffi-devel postgresql-devel openssl-devel \ - $VAR_RPMS && \ + rpm-devel libffi-devel postgresql-devel openssl-devel && \ microdnf clean all ADD /vmaas-go /vmaas/go/src/vmaas @@ -16,9 +17,22 @@ ADD /vmaas-go /vmaas/go/src/vmaas WORKDIR /vmaas/go/src/vmaas RUN go build -v main.go && go clean -cache -modcache -testcache +FROM registry.access.redhat.com/hi/python:3.12.13-builder as python-builder +ARG ALT_REPO + +USER root + +ARG VAR_RPMS="" +RUN (microdnf module enable -y postgresql:16 || curl -o /etc/yum.repos.d/postgresql.repo $ALT_REPO) && \ + microdnf install -y --setopt=install_weak_deps=0 --setopt=tsflags=nodocs \ + rpm-devel cargo rust libffi-devel postgresql-devel openssl-devel \ + $VAR_RPMS && \ + microdnf clean all # Switch back to /vmaas because of golang tests running in this stage WORKDIR /vmaas +RUN install -d -m 775 -g root data + ADD requirements.txt /vmaas/ ADD requirements-dev.txt /vmaas/ @@ -29,35 +43,32 @@ RUN pip3.12 install --upgrade pip && \ # ------------- # runtime image -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.7-1778562320@sha256:12db9874bd753eb98b1ab3d840e75de5d6842ac0604fbd68c012adefe97140be AS runtimeimg +FROM registry.access.redhat.com/hi/python:3.12.13-builder as runtimeimg + +USER root ARG ALT_REPO RUN (microdnf module enable -y postgresql:16 || curl -o /etc/yum.repos.d/postgresql.repo $ALT_REPO) && \ microdnf install -y --setopt=install_weak_deps=0 --setopt=tsflags=nodocs \ - python312 python3-rpm python3-dnf which nginx git-core shadow-utils diffutils systemd libicu postgresql libpq && \ - ln -s /usr/lib64/python3.9/site-packages/rpm /usr/lib64/python3.12/site-packages/rpm && \ - ln -s $(basename /usr/lib64/python3.9/site-packages/rpm/_rpm.*.so) /usr/lib64/python3.9/site-packages/rpm/_rpm.so && \ + python3-rpm python3-dnf nginx libicu postgresql postgresql-private-libs && \ + ln -s /usr/lib64/python3.14/site-packages/rpm /usr/lib64/python3.12/site-packages/rpm && \ microdnf clean all WORKDIR /vmaas -RUN install -d -m 775 -g root /data && \ - adduser --gid 0 -d /vmaas --no-create-home vmaas - ENV PYTHONPATH=/vmaas -USER vmaas - # Compiled Go binary -COPY --from=buildimg --chown=vmaas:root /vmaas/go/src/vmaas/main /vmaas/go/src/vmaas/ +COPY --from=go-builder --chown=root:root /vmaas/go/src/vmaas/main /vmaas/go/src/vmaas/ # Python deps -COPY --from=buildimg /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages -COPY --from=buildimg /usr/local/lib64/python3.12/site-packages /usr/local/lib64/python3.12/site-packages -COPY --from=buildimg /usr/local/bin/uvicorn /usr/local/bin/ +COPY --from=python-builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages +COPY --from=python-builder /usr/local/bin/uvicorn /usr/local/bin/ -COPY --from=buildimg --chown=vmaas:root /vmaas/requirements.txt /vmaas/ +COPY --from=python-builder --chown=root:root /vmaas/requirements.txt /vmaas/ + +COPY --from=python-builder --chown=root:root /vmaas/data/ /data/ ADD entrypoint.sh /vmaas/ ADD conf /vmaas/conf @@ -70,3 +81,5 @@ ADD /vmaas-go/docs/openapi.json /vmaas/go/src/vmaas/docs/v3/ ADD /vmaas/reposcan/redhatrelease/gen_package_profile.py /usr/local/bin ADD VERSION /vmaas/ + +USER 65532 \ No newline at end of file diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 125d7f8a0..a5ed57f6d 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -20,7 +20,7 @@ services: ALT_REPO: "https://copr.fedorainfracloud.org/coprs/g/insights/postgresql-16/repo/epel-9/group_insights-postgresql-16-epel-9.repo" VAR_RPMS: "findutils git-core postgresql" VAR_PIP_INSTALL_OPT: "-r requirements-dev.txt" - target: buildimg + target: python-builder image: vmaas/test:latest environment: CI: "${CI:-false}" diff --git a/vmaas-go/go.mod b/vmaas-go/go.mod index 155ccf2d6..f0824e5e9 100644 --- a/vmaas-go/go.mod +++ b/vmaas-go/go.mod @@ -89,4 +89,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/ezamriy/gorpm v0.0.0-20160905202458-25f7273cbf51 => github.com/psegedy/gorpm v0.0.0-20221128152921-427315f73216 +replace github.com/ezamriy/gorpm v0.0.0-20160905202458-25f7273cbf51 => github.com/MichaelMraka/gorpm v0.0.0-20251128174203-65cf25f01bac diff --git a/vmaas-go/go.sum b/vmaas-go/go.sum index ba375521d..ef80319cd 100644 --- a/vmaas-go/go.sum +++ b/vmaas-go/go.sum @@ -1,5 +1,7 @@ github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/MichaelMraka/gorpm v0.0.0-20251128174203-65cf25f01bac h1:qxH8XNTYCJvelLn1tm6iwPI2WIOzUu9x4Wzdui5+pUI= +github.com/MichaelMraka/gorpm v0.0.0-20251128174203-65cf25f01bac/go.mod h1:R3iHBCKh4OIuNrIzJl+81N08s7dD92MLffdRy+wbtnk= github.com/aws/aws-sdk-go-v2 v1.41.7 h1:DWpAJt66FmnnaRIOT/8ASTucrvuDPZASqhhLey6tLY8= github.com/aws/aws-sdk-go-v2 v1.41.7/go.mod h1:4LAfZOPHNVNQEckOACQx60Y8pSRjIkNZQz1w92xpMJc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 h1:gx1AwW1Iyk9Z9dD9F4akX5gnN3QZwUB20GGKH/I+Rho= @@ -126,8 +128,6 @@ github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTU github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws= github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw= -github.com/psegedy/gorpm v0.0.0-20221128152921-427315f73216 h1:ho/IsahddrO8XC6CPIdfUc9NzJVsfiUlji66fuG+kT8= -github.com/psegedy/gorpm v0.0.0-20221128152921-427315f73216/go.mod h1:vQitNpgQfyZg3wKlAp8RIx9yZ8R9xmgw0nxPoNvqDQk= github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw=