Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Memasang Pakej Python dari GCP Artifact Registry dalam Fail Docker

Cara Memasang Pakej Python dari GCP Artifact Registry dalam Fail Docker

Susan Sarandon
Lepaskan: 2025-01-28 16:14:16
asal
178 orang telah melayarinya

How to Install Python Packages from GCP Artifact Registry in Docker file

Anda telah membangunkan pakej Python yang hebat untuk menyediakan penggunaan dalaman syarikat. Anda ingin menerbitkannya supaya rakan sekerja anda dapat menggunakannya. Kerana pakej hanya untuk kegunaan dalaman, ia tidak dapat diterbitkan di PYPI (Registry Pakej Python Resmi). Sebaliknya, kerana syarikat anda menggunakan GCP, pilihan semulajadi adalah pendaftaran artifak.

Seperti yang diterangkan dalam dokumen, sangat mudah untuk menerbitkan pakej ke pendaftaran.

Saya menggunakan perpustakaan pembungkusan puisi. Berikut adalah beberapa arahan yang akan anda gunakan:

Selepas menyiarkan beg anda ke Registry Artifak, anda boleh memberikannya sebagai item yang bergantung kepada projek lain.
<code class="language-bash">poetry source add --priority=supplemental gcp_registry https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/
poetry publish --no-interaction --build --repository gcp_registry</code>
Salin selepas log masuk

pakej pemasangan

Memasang pakej pada mesin tempatan, sila buat fail keperluan_private.txt:

Kemudian, gunakan arahan berikut untuk memasang pakej:

<code>--index-url https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/simple/
--extra-index-url https://pypi.org/simple
{YOUR_PACKAGE_NAME}</code>
Salin selepas log masuk
Salin selepas log masuk

Pengesahan Pakej Pakej Pakaian KeyRing Artefact Registry. Pastikan aplikasi anda lalai ke aplikasi (ADC) sebelum meneruskan.

<code class="language-bash">pip install keyring
pip install keyrings.google-artifactregistry-auth
pip install -r /opt/requirements_private.txt</code>
Salin selepas log masuk

Docker Challenge


Semasa menjalankan aplikasi di Docker, anda akan menghadapi cabaran lain:

Anda tidak mahu menyalin maklumat sensitif (seperti fail akaun perkhidmatan anda) ke cermin Docker.

    anda masih perlu menggunakan registri artifak untuk pengesahan.
  1. Penyelesaiannya adalah mudah, tetapi tidak ada rekod dokumen yang baik. Saya mengambil masa beberapa hari untuk memikirkannya, jadi saya ingin menjimatkan masa anda dan membantu anda merealisasikannya dalam beberapa minit.

Penyelesaian


Melewati pembolehubah persekitaran Google_applications_credentials semasa tempoh pembinaan Docker, menunjuk ke laluan fail akaun perkhidmatan (bukannya kandungan fail itu sendiri).

Fail akaun perkhidmatan dipasang secara rahsia di bawah jalan yang ditentukan oleh Google_application_credentials.
  1. Semua operasi dilakukan dalam pernyataan Run yang sama, termasuk memasang beg keyring dan kebergantungan peribadi. Ini penting kerana pemasangan fail hanya wujud dalam konteksnya.
  2. Pastikan anda mempunyai kuasa yang sesuai untuk membaca fail.
  3. Contoh Dockerfile
  4. Berikut adalah penampilan Dockerfile anda:

keperluan_private.txt masih sama.

<code class="language-dockerfile">ARG GOOGLE_APPLICATION_CREDENTIALS

COPY requirements_private.txt /opt/requirements_private.txt

RUN --mount=type=secret,id=creds,target=/opt/mykey.json,mode=0444 \
     pip install keyring && \
     pip install keyrings.google-artifactregistry-auth && \
     pip install -r /opt/requirements_private.txt

COPY requirements.txt /opt/requirements.txt
RUN pip install -r /opt/requirements.txt</code>
Salin selepas log masuk
Seperti yang anda lihat, anda boleh mempunyai pelbagai fail keperluan. Dalam contoh saya, fail keperluan.txt digunakan untuk menjadi tuan rumah pakej dalam pendaftaran awam PYPI. Maka fail docker_compose.yml anda

<code>--index-url https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/simple/
--extra-index-url https://pypi.org/simple
{YOUR_PACKAGE_NAME}</code>
Salin selepas log masuk
Salin selepas log masuk
maka anda boleh menjalankan perintah membina:

<code class="language-yaml">services:
  app:
    build:
      context: .
      args:
        - GOOGLE_APPLICATION_CREDENTIALS=/opt/mykey.json
      secrets:
        - creds

secrets:
  creds:
    file: "C:/your/local/host/path/to/google_service_account.json"</code>
Salin selepas log masuk
Saya harap artikel ini akan membantu anda diintegrasikan dengan Registry dan Docker Artifak.

Atas ialah kandungan terperinci Cara Memasang Pakej Python dari GCP Artifact Registry dalam Fail Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan