Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Bagaimana untuk mengesahkan menggunakan repositori peribadi dalam bekas Docker

Bagaimana untuk mengesahkan menggunakan repositori peribadi dalam bekas Docker

Feb 09, 2024 am 09:40 AM
Data sensitif

如何使用 Docker 容器中的私有存储库进行身份验证

editor php Strawberry memperkenalkan anda cara menggunakan repositori peribadi dalam bekas Docker untuk pengesahan. Docker ialah platform kontena popular yang membantu pembangun menggunakan dan menjalankan aplikasi dengan cepat dalam persekitaran yang berbeza. Walau bagaimanapun, untuk sesetengah aplikasi sensitif atau pangkalan kod peribadi, kami mungkin perlu mengesahkan repositori dalam bekas untuk memastikan bahawa hanya kakitangan yang diberi kuasa boleh mengaksesnya. Artikel ini akan menunjukkan kepada anda cara menyediakan dan menggunakan pengesahan untuk repositori peribadi untuk melindungi data dan kod sensitif anda.

Kandungan soalan

Saya mempunyai repositori git yang merupakan repositori peribadi dan saya perlu dapat mengesahkannya dan dapat menjalankannya dalam container build 视角中查看它。有关一些背景信息,我有一个 github 工作流程,用于构建容器映像并将其发布到 ghcr.io pendaftaran. Walau bagaimanapun, kerana repositori yang bergantung pada pakej saya adalah peribadi, ia tidak berfungsi. Memandangkan ia berfungsi secara tempatan, saya telah mempertimbangkan untuk mengubah cara pengesahan github disimpan untuk membolehkan saya mengaksesnya, tetapi saya tertanya-tanya sama ada sesiapa tahu cara yang lebih baik untuk saya mengakses repositori peribadi. p>

Berikut ialah tindakan github untuk diterbitkan ke ghcr.io pendaftaran:

name: docker dataeng_github_metrics

# run workflow on tags starting with v (eg. v2, v1.2.0)
on:
  push:
    branches: [ "master" ]
    paths:
      - ./data_pipelines/dataeng_github_metrics/*
  pull_request:
    branches: [ "master" ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: checkout code
        uses: actions/checkout@v1
        
      - name: login to github container registry
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.ghcr_registry_token }}

      - name: set up docker buildx
        uses: docker/setup-buildx-action@v2

      - name: build and push docker image
        uses: docker/build-push-action@v3
        with:
          context: ./data_pipelines/dataeng_github_metrics/
          file: ./data_pipelines/dataeng_github_metrics/dockerfile
          push: true # will only build if this is not here
          tags: |
            ghcr.io/mirantis/dataeng_github_metrics:latest
          # todo: i cannot use dataeng as public and need to change the way gitconfig is used in the dockerfile for authentication
          secrets: |
            token=${{ secrets.automation_pat}}
Salin selepas log masuk

Ini ialah dockerfile:

###############
# cache image #
###############
arg go_image=golang:1.17.3-alpine3.14
arg base_image=alpine:3.14.2

from ${go_image} as cache
# add the keys
arg github_id
env github_id=$github_id
arg github_token
env github_token=$github_token

# install git
run apk add git

# todo: encrypt the github_id and github_token
# make git configuration
run git config \
    --global \
    url."https://${github_id}:${github_token}@github.com/".insteadof \
    "https://github.com/"

workdir /src
copy go.mod go.sum /src/
run go mod download

##############
# base image #
##############
from cache as dataeng_github_metrics
copy . /bin
workdir /bin

# setup git terminal prompt & go build
run go build .

###############
# final image #
###############
from ${base_image}
copy --from=dataeng_github_metrics /bin/dataeng_github_metrics bin/
entrypoint [ "bin/dataeng_github_metrics" ]
Salin selepas log masuk

Saya rasa bahagian besar yang mengelirukan saya ialah ini, tetapi tertanya-tanya jika ada cara yang lebih baik untuk melakukannya:

# make git configuration
run git config \
    --global \
    url."https://${github_id}:${github_token}@github.com/".insteadof \
    "https://github.com/"
Salin selepas log masuk

Cara untuk mengakses repositori peribadi dan mengelakkan ralat berikut dalam aliran kerja anda:

#14 9.438   remote: Repository not found.
#14 9.438   fatal: Authentication failed for 'https://github.com/Mirantis/dataeng/'
------
Dockerfile:26
--------------------
  24 |     WORKDIR /src
  25 |     COPY go.mod go.sum /src/
  26 | >>> RUN go mod download
  27 |     
  28 |     ##############
--------------------
ERROR: failed to solve: process "/bin/sh -c go mod download" did not complete successfully: exit code: 1
Error: buildx failed with: ERROR: failed to solve: process "/bin/sh -c go mod download" did not complete successfully: exit code: 1
Salin selepas log masuk

Penyelesaian

Dalam dockerfile 中,为了使用操作传递的密钥(称为 token, untuk menggunakan kunci yang diluluskan oleh operasi (dipanggil token), anda harus menjalankan seperti berikut:

RUN --mount=type=secret,id=TOKEN \
    echo "machine github.com login x password $(head -n 1 /run/secrets/TOKEN)" > ~/.netrc && \
git config \
    --global \
    url."https://${GITHUB_ID}:${TOKEN}@github.com/".insteadOf \
    "https://github.com/"
Salin selepas log masuk

Ingat untuk menghantar github_id ke fail docker juga

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan menggunakan repositori peribadi dalam bekas Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah alamat IP Douyin dipaparkan? Adakah alamat IP menunjukkan lokasi masa nyata? Bagaimanakah alamat IP Douyin dipaparkan? Adakah alamat IP menunjukkan lokasi masa nyata? May 02, 2024 pm 01:34 PM

Pengguna bukan sahaja boleh menonton pelbagai video pendek menarik di Douyin, malah turut menerbitkan karya mereka sendiri dan berinteraksi dengan netizen di seluruh negara malah dunia. Dalam proses itu, fungsi paparan alamat IP Douyin telah menarik perhatian yang meluas. 1. Bagaimanakah alamat IP Douyin dipaparkan? Fungsi paparan alamat IP Douyin dilaksanakan terutamanya melalui perkhidmatan lokasi geografi. Apabila pengguna menyiarkan atau menonton video di Douyin, Douyin secara automatik memperoleh maklumat lokasi geografi pengguna. Proses ini terutamanya dibahagikan kepada langkah-langkah berikut: pertama, pengguna mendayakan aplikasi Douyin dan membenarkan aplikasi mengakses maklumat lokasi geografinya, kedua, Douyin menggunakan perkhidmatan lokasi untuk mendapatkan maklumat lokasi geografi pengguna akhirnya, Douyin memindahkan geografi pengguna; maklumat lokasi Maklumat lokasi geografi dikaitkan dengan data dan kehendak video yang disiarkan atau dilihat

Apakah nilai dan kegunaan syiling icp? Apakah nilai dan kegunaan syiling icp? May 09, 2024 am 10:47 AM

Sebagai tanda asli protokol Internet Computer (IC), ICP Coin menyediakan set nilai dan kegunaan yang unik, termasuk menyimpan nilai, tadbir urus rangkaian, penyimpanan data dan pengkomputeran, dan memberi insentif kepada operasi nod. ICP Coin dianggap sebagai mata wang kripto yang menjanjikan, dengan kredibiliti dan nilainya berkembang dengan penggunaan protokol IC. Di samping itu, syiling ICP memainkan peranan penting dalam tadbir urus protokol IC. Pemegang Syiling boleh mengambil bahagian dalam pengundian dan penyerahan cadangan, yang menjejaskan pembangunan protokol.

Alat pengeluaran besar-besaran cakera Kingston U - penyelesaian salinan data massa yang cekap dan mudah Alat pengeluaran besar-besaran cakera Kingston U - penyelesaian salinan data massa yang cekap dan mudah May 01, 2024 pm 06:40 PM

Pengenalan: Bagi syarikat dan individu yang perlu menyalin data dalam kuantiti yang banyak, alat pengeluaran besar-besaran cakera U yang cekap dan mudah adalah amat diperlukan. Alat pengeluaran besar-besaran cakera U yang dilancarkan oleh Kingston telah menjadi pilihan pertama untuk penyalinan data volum besar kerana prestasinya yang cemerlang dan operasi yang mudah dan mudah digunakan. Artikel ini akan memperkenalkan secara terperinci ciri, penggunaan dan kes aplikasi praktikal alat pengeluaran besar-besaran cakera kilat USB Kingston untuk membantu pembaca lebih memahami dan menggunakan penyelesaian penyalinan data massa yang cekap dan mudah ini. Bahan alat: Versi sistem: Windows1020H2 Model jenama: Kingston DataTraveler100G3 Versi perisian cakera U: Alat pengeluaran besar-besaran cakera Kingston U v1.2.0 1. Ciri-ciri alat pengeluaran besar-besaran cakera Kingston U 1. Menyokong pelbagai model cakera U: Jumlah cakera Kingston U

Maksud * dalam sql Maksud * dalam sql Apr 28, 2024 am 11:09 AM

Dalam SQL bermaksud semua lajur, ia digunakan untuk memilih semua lajur dalam jadual, sintaksnya ialah SELECT FROM table_name;. Kelebihan penggunaan termasuk kesederhanaan, kemudahan dan penyesuaian dinamik, tetapi pada masa yang sama memberi perhatian kepada prestasi, keselamatan data dan kebolehbacaan. Selain itu, ia boleh digunakan untuk menyertai jadual dan subkueri.

Perbezaan antara pangkalan data oracle dan mysql Perbezaan antara pangkalan data oracle dan mysql May 10, 2024 am 01:54 AM

Pangkalan data Oracle dan MySQL adalah kedua-dua pangkalan data berdasarkan model hubungan, tetapi Oracle lebih unggul dari segi keserasian, skalabiliti, jenis data dan keselamatan manakala MySQL memfokuskan pada kelajuan dan fleksibiliti dan lebih sesuai untuk set data bersaiz kecil. ① Oracle menyediakan pelbagai jenis data, ② menyediakan ciri keselamatan lanjutan, ③ sesuai untuk aplikasi peringkat perusahaan ① MySQL menyokong jenis data NoSQL, ② mempunyai langkah keselamatan yang lebih sedikit, dan ③ sesuai untuk aplikasi bersaiz kecil hingga sederhana.

Apakah maksud pandangan dalam sql Apakah maksud pandangan dalam sql Apr 29, 2024 pm 03:21 PM

Paparan SQL ialah jadual maya yang memperoleh data daripada jadual asas, tidak menyimpan data sebenar dan dijana secara dinamik semasa pertanyaan. Faedah termasuk: abstraksi data, keselamatan data, pengoptimuman prestasi dan integriti data. Paparan yang dibuat melalui kenyataan CREATE VIEW boleh digunakan sebagai jadual dalam pertanyaan lain, tetapi mengemas kini paparan sebenarnya mengemas kini jadual asas.

Amalan terbaik untuk pengubah akses fungsi Java Amalan terbaik untuk pengubah akses fungsi Java Apr 25, 2024 pm 04:54 PM

Amalan terbaik untuk pengubah suai akses untuk fungsi Java: Gunakan pengubah suai yang paling ketat, yang ditetapkan kepada peribadi secara lalai. Kelas dalaman menggunakan pengubah suai peribadi. Kaedah yang dilindungi menggunakan pengubah yang dilindungi untuk membenarkan akses oleh subkelas. Semua sifat dalam kelas tidak berubah ditetapkan kepada peribadi dan diakses melalui kaedah getter. API Awam menggunakan pengubah suai awam supaya ia boleh diakses oleh kelas luaran.

Cara melaksanakan amalan terbaik keselamatan PHP Cara melaksanakan amalan terbaik keselamatan PHP May 05, 2024 am 10:51 AM

Cara Melaksanakan Amalan Terbaik Keselamatan PHP PHP ialah salah satu bahasa pengaturcaraan web bahagian belakang paling popular yang digunakan untuk mencipta laman web dinamik dan interaktif. Walau bagaimanapun, kod PHP boleh terdedah kepada pelbagai kelemahan keselamatan. Melaksanakan amalan terbaik keselamatan adalah penting untuk melindungi aplikasi web anda daripada ancaman ini. Pengesahan input Pengesahan input ialah langkah pertama yang kritikal dalam mengesahkan input pengguna dan mencegah input berniat jahat seperti suntikan SQL. PHP menyediakan pelbagai fungsi pengesahan input, seperti filter_var() dan preg_match(). Contoh: $username=filter_var($_POST['username'],FILTER_SANIT

See all articles