Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,24 +1,38 @@
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

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/

Expand All @@ -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
Expand All @@ -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
2 changes: 1 addition & 1 deletion docker-compose.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand Down
2 changes: 1 addition & 1 deletion vmaas-go/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions vmaas-go/go.sum
Original file line number Diff line number Diff line change
@@ -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=
Expand Down Expand Up @@ -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=
Expand Down
Loading