# Copyright (c) 2020 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. ARG PYTHON_VERSION=3.10 ARG DEBIAN_VERSION=bullseye FROM docker.io/opendevorg/python-builder:${PYTHON_VERSION}-${DEBIAN_VERSION} as builder ARG PYTHON_VERSION COPY . /tmp/src # We set pip verbosity because this seems to make the uWSGI wheel builds # more reliable on bullseye. Is it crazy to rely on this? Absolutely. But # uWSGI's build system is a ball of fun. There is an upstream pull request # that appears to be fixing this issue: # https://github.com/unbit/uwsgi/pull/2362 # jrosser also indicates this can be fixed by not overriding function names: # https://paste.opendev.org/show/811669/ # Until a fix lands use this verbosity flag to work around it. # # Older python bundles older pip and doesn't understand non binary # verbosity values. We explicitly invoke bash here to get access to [[ # in order to check the version against a pattern. test doesn't cut it. RUN /bin/bash -c "if [[ $PYTHON_VERSION == 3.7* ]] ; then exit 0 ; else exit 1 ; fi" && PIP_VERBOSE=1 assemble uWSGI || PIP_VERBOSE=3 assemble uWSGI FROM docker.io/opendevorg/python-base:${PYTHON_VERSION}-${DEBIAN_VERSION} COPY --from=builder /output/ /output RUN /output/install-from-bindep && \ rm -rfv /output/packages.txt ENV UWSGI_MASTER=1 UWSGI_UID=nobody UWSGI_GID=nogroup CMD ["/usr/local/bin/uwsgi"]