私は Docker/Python を初めて使用し、既存の AWX の Docker イメージの Dockerfile を更新して、次のパッケージの最新バージョンがあることを確認しようとしています。/usr/lib/python3.6/site-packages
/usr/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py
/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/connectionpool.py
/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/poolmanager.py
/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/util/retry.py
以下は私の環境情報です:
Docker バージョン 19.03.3、ビルド a872fc2f86
Docker ベース イメージ: centos:latest
これを変更する Dockerfile は、こちらから入手できます。
これまでに複数の投稿/ブログから読んだことから、これは通常、単純に更新する必要があります。
pip3 install --upgrade pip
しかし、これを実行すると、次のようになります(パスに含まれる別local
のパスが表示されます。
bash-4.4# pip3 install --upgrade pip
Requirement already up-to-date: pip in /usr/local/lib/python3.6/site-packages (19.3.1)
次のことも試しましたが、これは役に立ちませんでした:
bash-4.4# python3 -m ensurepip --upgrade
Requirement already up-to-date: setuptools in /usr/lib/python3.6/site-packages
Requirement already up-to-date: pip in /usr/local/lib/python3.6/site-packages
bash-4.4# pip3 install --upgrade setuptools
Requirement already up-to-date: setuptools in /usr/local/lib/python3.6/site-packages (42.0.2)
これは、上記の変更が Dockerfile に適用された方法です。
この Dockerfile では、pip パッケージを更新するために、Dockerfile の 124行目の後に次の行を追加しました。
RUN yum update -y
RUN pip2 install --upgrade pip
RUN pip3 install --upgrade pip
Dockerfile からの必要なセクションのスナップショット
FROM centos:latest
USER root
# sync with installer/roles/image_build/templates/Dockerfile.j2
RUN dnf -y update && \
dnf -y install epel-release 'dnf-command(config-manager)' && \
dnf module -y enable 'postgresql:10' && \
dnf config-manager --set-enabled PowerTools && \
.
.
.
ansible \
python3-devel \
python3-libselinux \
python3-pip \
python3-psycopg2 \
python3-setuptools \
dnf-utils
ADD https://github.com/krallin/tini/releases/download/v0.14.0/tini /tini
RUN chmod +x /tini
RUN python3 -m ensurepip && pip3 install virtualenv
RUN pip3 install supervisor
ADD Makefile /tmp/Makefile
RUN mkdir /tmp/requirements
ADD requirements/requirements_ansible.txt \
requirements/requirements_ansible_uninstall.txt \
requirements/requirements_ansible_git.txt \
requirements/requirements.txt \
requirements/requirements_tower_uninstall.txt \
requirements/requirements_git.txt \
/tmp/requirements/
RUN cd /tmp && VENV_BASE="/var/lib/awx/venv" make requirements_awx requirements_ansible_py3
.
.
.
RUN echo "{{ awx_version }}" > /var/lib/awx/.tower_version
COPY {{ awx_sdist_file }} /tmp/{{ awx_sdist_file }}
RUN OFFICIAL=yes /var/lib/awx/venv/awx/bin/pip install /tmp/{{ awx_sdist_file }}
どういうわけか、変更が正しいパスに反映されていません。誰かが内部のパッケージを更新する方法を提案できますか:/usr/lib/python3.6/site-packages