| VERSION 0.7 |
| |
| PIP_INSTALL: |
| COMMAND |
| ARG PACKAGES |
| RUN --mount=type=cache,target=/root/.cache \ |
| /var/lib/openstack/bin/pip3 install \ |
| --constraint /upper-constraints.txt \ |
| ${PACKAGES} |
| |
| GIT_CHECKOUT: |
| COMMAND |
| ARG PROJECT |
| ARG PROJECT_REPO=https://github.com/openstack/${PROJECT} |
| ARG PROJECT_REF |
| GIT CLONE --branch ${PROJECT_REF} ${PROJECT_REPO} /src |
| WORKDIR /src |
| RUN \ |
| git remote set-url origin ${PROJECT_REPO} && \ |
| git fetch --unshallow |
| COPY --if-exists patches/${PROJECT} /patches |
| IF [ -d /patches ] |
| RUN git apply --verbose /patches/*.patch |
| END |
| |
| BUILD_VENV: |
| COMMAND |
| ARG PROJECT |
| ARG PROJECT_REF |
| DO +GIT_CHECKOUT --PROJECT=${PROJECT} --PROJECT_REF=${PROJECT_REF} |
| ARG EXTRAS="" |
| ARG PIP_PACKAGES="" |
| DO +PIP_INSTALL --PACKAGES "/src${EXTRAS} ${PIP_PACKAGES}" |
| SAVE ARTIFACT /var/lib/openstack venv |
| |
| requirements: |
| FROM ../base+image |
| ARG RELEASE |
| IF [ "${RELEASE}" = "master" ] |
| ARG BRANCH=master |
| ELSE |
| ARG BRANCH=stable/${RELEASE} |
| END |
| GIT CLONE --branch ${BRANCH} https://github.com/openstack/requirements /src |
| RUN \ |
| sed -i '/glance-store/d' /src/upper-constraints.txt && \ |
| sed -i '/horizon/d' /src/upper-constraints.txt |
| SAVE ARTIFACT /src/upper-constraints.txt |
| |
| builder: |
| ARG RELEASE |
| FROM ../cloud-archive-base+image --RELEASE=${RELEASE} |
| DO ../+APT_INSTALL --PACKAGES "\ |
| build-essential \ |
| curl \ |
| git \ |
| libldap2-dev \ |
| libpcre3-dev \ |
| libsasl2-dev \ |
| libssl-dev \ |
| lsb-release \ |
| openssh-client \ |
| python3 \ |
| python3-dev \ |
| python3-pip \ |
| python3-venv" |
| RUN --mount type=cache,target=/root/.cache \ |
| python3 -m venv --upgrade --system-site-packages /var/lib/openstack |
| COPY \ |
| (+requirements/upper-constraints.txt --RELEASE=${RELEASE}) \ |
| /upper-constraints.txt |
| DO +PIP_INSTALL --PACKAGES "pymysql python-memcached cryptography uwsgi" |
| |
| image: |
| ARG --required RELEASE |
| FROM ../cloud-archive-base+image --RELEASE=${RELEASE} |
| ENV PATH=/var/lib/openstack/bin:$PATH |
| ARG --required PROJECT |
| DO ../+CREATE_PROJECT_USER --PROJECT=${PROJECT} |