如何使用 Docker 容器中的私有儲存庫進行驗證
php小編草莓為您介紹如何使用 Docker 容器中的私人儲存庫進行身份驗證。 Docker 是一種流行的容器化平台,能夠幫助開發人員在不同的環境中快速部署和運行應用程式。然而,對於一些敏感的應用程式或私有的程式碼庫,我們可能需要對容器中的儲存庫進行身份驗證,以確保只有授權的人員可以存取。本文將向您展示如何設定和使用私有儲存庫的身份驗證,以保護您的敏感資料和程式碼。
問題內容
我有一個git 儲存庫,它是一個私人儲存庫,我需要能夠對其進行身份驗證,並能夠在運行時在container build
視角中查看它。有關一些背景信息,我有一個 github 工作流程,用於構建容器映像並將其發佈到 ghcr.io
註冊表。但是,因為我的套件依賴的儲存庫是私有的,所以它不起作用。現在它可以在本地運行,我考慮過更改存儲 github 身份驗證的方式以允許我訪問它,但我想知道是否有人知道更好的方法讓我訪問私有存儲庫。 p>
以下是發佈到 ghcr.io
註冊表的 github 操作:
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}}
這是 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" ]
我認為讓我困惑的重要部分是這個,但想知道是否有更好的方法來實現它:
# make git configuration run git config \ --global \ url."https://${github_id}:${github_token}@github.com/".insteadof \ "https://github.com/"
如何存取私有儲存庫並避免工作流程中出現以下錯誤:
#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
解決方法
在dockerfile
中,為了使用操作傳遞的金鑰(稱為token
),您應該以下列方式執行:
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/"
記得將 github_id
也傳遞給 dockerfile
以上是如何使用 Docker 容器中的私有儲存庫進行驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

用戶在抖音不僅可以觀看各種有趣的短視頻,還可以發布自己拍攝的作品,與全國乃至全球的網友互動。在這個過程中,抖音的IP位址顯示功能引起了廣泛關注。一、抖音的IP位址是怎麼顯示的?抖音的IP位址顯示功能主要是透過地理位置定位服務來實現的。當使用者在抖音上發布或觀看影片時,抖音會自動取得使用者的地理位置資訊。這個過程主要分為以下幾個步驟:首先,用戶啟用抖音應用程式並允許應用程式存取其地理位置資訊;其次,抖音使用定位服務來獲取用戶的地理位置資訊;最後,抖音將用戶的地理位置資訊與其發布或觀看的影片資料相關聯,並將

作为互联网计算机 (IC) 协议的原生代币,ICP 币提供一系列独特的价值和用途,包括存储价值、网络治理、数据存储和计算,以及激励节点运营。ICP 币被认为是一种有潛力的加密貨幣,其可信度和價值隨著 IC 協議的採用而增長。此外,ICP 幣在 IC 協議的治理中發揮重要作用,持幣者可以參與投票和提案的提交,影響協議的發展。

SQL 中的 表示所有列,它用於簡單地選擇表中的所有列,語法為 SELECT FROM table_name;。使用 的優點包括簡潔、方便和動態適應,但同時要注意效能、資料安全性和可讀性。此外, 也可用於連接表和子查詢。

簡介:對於需要大量複製資料的企業和個人來說,高效便捷的U盤量產工具是不可或缺的。金士頓推出的U盤量產工具,以其優異的性能和簡單易用的操作方式,成為大批量資料拷貝的首選方案。本文將詳細介紹金士頓U盤量產工具的特點、使用方法以及實際應用案例,幫助讀者更了解並使用這款高效便捷的大批量資料拷貝方案。工具原料:系統版本:Windows1020H2品牌型號:金士頓DataTraveler100G3U盤軟體版本:金士頓U盤量產工具v1.2.0一、金士頓U盤量產工具的特性1、支援多種磁碟機型:金士頓U盤量

Oracle資料庫和MySQL都是基於關聯式模型的資料庫,但Oracle在相容性、可擴展性、資料類型和安全性方面更勝一籌;而MySQL則專注於速度和靈活性,更適合小到中等規模的資料集。 ①Oracle提供廣泛的資料類型,②提供進階安全功能,③適合企業級應用程式;①MySQL支援NoSQL資料類型,②安全性措施較少,③適合小型到中等規模應用程式。

SQL 視圖是一種虛擬表,從基礎表派生數據,不儲存實際數據,查詢時動態產生。優點包括:資料抽象化、資料安全性、效能最佳化和資料完整性。透過 CREATE VIEW 語句建立視圖,可以用作其他查詢中的表,但更新視圖實際上會更新基礎表。

在 Vue.js 中,GET 和 POST 的主要區別在於:GET 用於檢索數據,而 POST 用於建立或更新數據。 GET 請求的資料包含在查詢字串中,而 POST 請求的資料包含在請求體中。 GET 請求的安全性較低,因為資料在 URL 中可見,而 POST 請求更安全。

不可能直接在手機上用單一應用完成 XML 到 PDF 的轉換。需要使用雲端服務,通過兩步走的方式實現:1. 在雲端轉換 XML 為 PDF,2. 在手機端訪問或下載轉換後的 PDF 文件。
