Merge #1757 install mbs in the container images using pip

This commit is contained in:
Mike McLean
2022-08-24 21:54:07 +00:00
2 changed files with 48 additions and 40 deletions

View File

@@ -1,54 +1,70 @@
FROM fedora:31 AS builder
FROM registry.fedoraproject.org/fedora:latest AS builder
ARG EXTRA_RPMS=""
ARG GIT_REPO=""
ARG GIT_REF=""
ARG VERSION=""
ARG CREATED=""
ARG DNF_CMD="dnf -y --setopt=deltarpm=0 --setopt=install_weak_deps=false --setopt=tsflags=nodocs"
COPY . /src
WORKDIR /src
RUN ${DNF_CMD} install \
'dnf-command(builddep)' rpm-build rpmdevtools rpmlint \
python3-tox python3-pytest python3-pytest-cov python3-mock python3-flake8 bandit && \
${DNF_CMD} builddep *.spec && \
${DNF_CMD} clean all
RUN rpmdev-setuptree && \
python3 setup.py sdist && \
rpmbuild --define "_sourcedir $PWD/dist" -ba *.spec && \
mv $HOME/rpmbuild/RPMS /srv
RUN flake8 && \
bandit -r -ll -s B102,B104,B303,B411,B602 module_build_service && \
tox -v -e py3
RUN $DNF_CMD install \
python3-setuptools python3-wheel && \
$DNF_CMD clean all
RUN python3 setup.py bdist_wheel -u root -g root
FROM registry.fedoraproject.org/fedora:latest
ARG DNF_CMD="dnf -y --setopt=deltarpm=0 --setopt=install_weak_deps=false --setopt=tsflags=nodocs"
ARG EXTRA_RPMS=""
FROM fedora:31
LABEL \
org.opencontainers.image.title="Backend for the Module Build Service (MBS)" \
org.opencontainers.image.description="The MBS coordinates module builds. This image is to serve as the MBS backend." \
org.opencontainers.image.vendor="The Factory 2.0 Team" \
org.opencontainers.image.authors="The Factory 2.0 Team <pnt-factory2-devel@redhat.com>" \
org.opencontainers.image.vendor="The Brew Guild" \
org.opencontainers.image.authors="The Brew Guild <brew-devel@redhat.com>" \
org.opencontainers.image.licenses="MIT" \
org.opencontainers.image.source="$GIT_REPO" \
org.opencontainers.image.revision="$GIT_REF" \
org.opencontainers.image.version="$VERSION" \
org.opencontainers.image.created="$CREATED" \
org.opencontainers.image.url="https://pagure.io/fm-orchestrator" \
org.opencontainers.image.documentation="https://pagure.io/fm-orchestrator" \
distribution-scope="public"
COPY --from=builder /srv/RPMS /srv/RPMS
COPY repos/ /etc/yum.repos.d/
COPY --from=builder /src/dist /src/dist
RUN $DNF_CMD install \
python3-celery \
python3-distro \
python3-dnf \
python3-docopt \
python3-dogpile-cache \
python3-fedmsg \
python3-flask \
python3-flask-migrate \
python3-flask-sqlalchemy \
python3-kobo \
python3-kobo-rpmlib \
python3-koji \
python3-ldap3 \
python3-libmodulemd \
python3-m2crypto \
python3-moksha-hub \
python3-munch \
python3-openidc-client \
python3-packaging \
python3-pip \
python3-prometheus_client \
python3-psycopg2 \
python3-pungi \
python3-pyOpenSSL \
python3-pyparsing \
python3-requests \
python3-service-identity \
/srv/*/*/*.rpm \
python3-six \
python3-solv \
python3-sqlalchemy \
git-core \
$EXTRA_RPMS && \
$DNF_CMD clean all && \
rm -rf /srv/RPMS
rm -f /etc/fedmsg.d/* && \
$DNF_CMD clean all
# Install locally available python wheels only.
# Any new/updated dependencies should be installed via rpm.
RUN pip-3 install --no-deps /src/dist/*.whl
USER 1001

View File

@@ -1,22 +1,14 @@
# See `../backend/` for building `mbs-backend:latest`
FROM mbs-backend:latest
ARG GIT_REPO=""
ARG GIT_REF=""
ARG VERSION=""
ARG CREATED=""
ARG DNF_CMD="dnf -y --setopt=deltarpm=0 --setopt=install_weak_deps=false --setopt=tsflags=nodocs"
LABEL \
org.opencontainers.image.title="Frontend for the Module Build Service (MBS)" \
org.opencontainers.image.description="The MBS coordinates module builds. This image is to serve as the MBS frontend." \
org.opencontainers.image.vendor="The Factory 2.0 Team" \
org.opencontainers.image.authors="The Factory 2.0 Team <pnt-factory2-devel@redhat.com>" \
org.opencontainers.image.vendor="The Brew Guild" \
org.opencontainers.image.authors="The Brew Guild <brew-devel@redhat.com>" \
org.opencontainers.image.licenses="MIT" \
org.opencontainers.image.source="$GIT_REPO" \
org.opencontainers.image.revision="$GIT_REF" \
org.opencontainers.image.version="$VERSION" \
org.opencontainers.image.created="$CREATED" \
org.opencontainers.image.url="https://pagure.io/fm-orchestrator" \
org.opencontainers.image.documentation="https://pagure.io/fm-orchestrator" \
io.openshift.expose-services="8080:http,8443:https" \