mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-03 05:03:43 +08:00
install mbs in the container images using pip
Removing the requirement to build the rpm as part of the image build simplifies the build process and reduces fragility introduced by trying to keep the rpm build and image builds in sync.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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" \
|
||||
|
||||
Reference in New Issue
Block a user