Dockerfile: install tox in its own virtualenv
Fix multiple problems with python modules that cause build errors. * Avoid replacing RPM-owned python modules with pip: - Remove python-tox: installed via pip later in Dockerfile - Remove python-testrepository: installed via pip later in Dockerfile (required by pbr) - Add python-virtualenv: was pulled in by one of the removed packages above * builder-constraints.txt: used only for global packages: - Move all version constraints of Dockerfile into constraints file - Remove filelock and platformdirs packages (required by tox -- see below). - git-review: downgrade to 1.28.0, latest official version compatible with python 2.7 * Install a sane python 2.7 virtual environment that doesn't conflict with RPM modules, that includes tox. Create a symlink to tox in /usr/bin/. Uses a separate contraints file. * builder-opt-py27-constraints.txt: new file for the virtualenv in /opt: - tox==3.23.0 - Remove "filelock" and "platformdirs" packages formerly in the original constraints file. They resolve correctly by the tox requirement. Note that this downgrades the packages slightly compared to the explicit requirements, back to the latest official versions compatible with python 2.7. See revisions starlingx/tools revisions: 0d67f81bdff338c2f965a50aa3fccac08579ec60 7bde482bcbee0d740446d7484a59d312e73e769b Closes-Bug: 1960675 Signed-off-by: Davlet Panech <davlet.panech@windriver.com> Change-Id: I7e3e7e4f4afa52a614cb9f58b2d6172441ea7bc1
This commit is contained in:
parent
6f2ad65a6a
commit
eec9163e0e
32
Dockerfile
32
Dockerfile
@ -108,8 +108,7 @@ RUN yum install -y \
|
||||
python3-devel \
|
||||
python-sphinx \
|
||||
python-subunit \
|
||||
python-testrepository \
|
||||
python-tox \
|
||||
python-virtualenv \
|
||||
python-yaml \
|
||||
python2-ruamel-yaml \
|
||||
postgresql \
|
||||
@ -190,10 +189,31 @@ RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == system
|
||||
|
||||
# pip installs
|
||||
COPY toCOPY/builder-constraints.txt /home/$MYUNAME/
|
||||
RUN pip install -c /home/$MYUNAME/builder-constraints.txt pbr==5.6.0 --upgrade && \
|
||||
pip install -c /home/$MYUNAME/builder-constraints.txt git-review==2.1.0 --upgrade && \
|
||||
pip install -c /home/$MYUNAME/builder-constraints.txt python-subunit==1.4.0 junitxml==0.7 testtools==2.4.0 --upgrade && \
|
||||
pip install -c /home/$MYUNAME/builder-constraints.txt tox==3.23.0 --upgrade
|
||||
# Install required python modules globally; versions are in the constraints file.
|
||||
# Be careful not to replace modules provided by RPMs as it may break
|
||||
# other system packages. Look for warnings similar to "Uninstalling a
|
||||
# distutils installed project has been deprecated" from pip.
|
||||
RUN pip install -c /home/$MYUNAME/builder-constraints.txt \
|
||||
testrepository \
|
||||
fixtures \
|
||||
pbr \
|
||||
git-review \
|
||||
python-subunit \
|
||||
junitxml \
|
||||
testtools
|
||||
|
||||
|
||||
# Create a sane py27 virtualenv
|
||||
COPY toCOPY/builder-opt-py27-constraints.txt /home/$MYUNAME
|
||||
RUN virtualenv /opt/py27 && \
|
||||
source /opt/py27/bin/activate && \
|
||||
pip install -c /home/$MYUNAME/builder-opt-py27-constraints.txt \
|
||||
tox \
|
||||
&& \
|
||||
for prog in tox ; do \
|
||||
ln -s /opt/py27/bin/$prog /usr/bin ; \
|
||||
done
|
||||
|
||||
|
||||
# Inherited tools for mock stuff
|
||||
# we at least need the mock_cache_unlock tool
|
||||
|
@ -1,5 +1,10 @@
|
||||
more-itertools===5.0.0;python_version=='2.7' # Last version with official 2.7 support
|
||||
pyparsing===2.4.7
|
||||
filelock===3.4.0 # Last version with official py2.7 support was 3.2.1, but 3.4.0 is known to work
|
||||
platformdirs===2.4.0 # Last version with official py2.7 support was 2.0.2, but 2.4.0 is known to work
|
||||
git-review==1.28.0 # Last version with official 2.7 support
|
||||
pbr==5.6.0 # Last version with official 2.7 support
|
||||
python-subunit==1.4.0
|
||||
junitxml==0.7
|
||||
testtools==2.4.0
|
||||
|
||||
testrepository==0.0.20 # Replacement for python-testrepository-0.18 rpm
|
||||
fixtures==3.0.0 # Required by testrepository
|
||||
|
1
toCOPY/builder-opt-py27-constraints.txt
Normal file
1
toCOPY/builder-opt-py27-constraints.txt
Normal file
@ -0,0 +1 @@
|
||||
tox===3.23.0
|
Loading…
x
Reference in New Issue
Block a user