0

私は 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

4

0 に答える 0