成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

徹底解決Docker鏡像無法下載

人工智能
本文介紹如何徹底解決Docker鏡像無法下載的問題。主要流程為: 通過GitHub Workflow把Docker鏡像同步到阿里云容器鏡像服務GitHub Workflow運行在GitHub的服務器上,可以無障礙下載Docker鏡像;從阿里云容器鏡像服務下載Docker鏡像到本地。

前言

Docker是一個開源容器化平臺,它的核心作用是通過容器技術將應用程序及其依賴環境打包成一個輕量級、可移植的單元,從而簡化開發、部署和運維流程。例如我們可以通過Docker輕松部署Dify社區版,幫助開發者和企業快速構建、部署及管理生成式AI應用。

由于眾所周知的限制,國內開發者訪問Docker Hub面臨諸多不便,且多個國內鏡像源陸續出現了無法使用的情況。

本文介紹如何徹底解決Docker鏡像無法下載的問題。主要流程為

  1. 通過GitHub Workflow把Docker鏡像同步到阿里云容器鏡像服務GitHub Workflow運行在GitHub的服務器上,可以無障礙下載Docker鏡像
  2. 從阿里云容器鏡像服務下載Docker鏡像到本地

GitHub Workflow介紹

GitHub Workflow是GitHub提供的一種自動化工具,用于幫助開發者更高效地管理代碼庫中的開發流程。它通過GitHub Actions實現,允許開發者在代碼庫中定義和執行自動化任務,例如構建、測試、部署等。GitHub Workflow的核心思想是將開發流程中的重復性任務自動化,從而減少手動操作,提高開發效率和代碼質量。

核心概念

  • GitHub ActionsGitHub Actions是GitHub提供的自動化平臺,允許你創建自定義的工作流(Workflow)。它基于YAML文件配置,可以在特定事件(如 push、pull request 等)觸發時執行任務。
  • WorkflowWorkflow是一個自動化流程,由一系列任務(Jobs)組成。每個Workflow對應一個 YAML文件,定義了觸發條件、執行步驟和依賴關系。
  • JobJob是Workflow中的一個任務單元,通常包含一組步驟(Steps)。每個Job在一個獨立的運行環境中執行,可以是虛擬機或容器。
  • StepStep是Job中的具體操作,例如運行命令、調用腳本或使用預定義的操作(Actions)。每個 Step 按順序執行。
  • EventEvent是觸發Workflow的事件,例如代碼提交(push)、拉取請求(pull request)、問題創建(issue)等。
  • ActionsActions是預定義的可重用代碼塊,可以完成特定任務,例如構建代碼、運行測試、部署應用等。GitHub 提供了官方Actions,也支持自定義Actions。

設置阿里云容器鏡像服務

創建命名空間

打開https://cr.console.aliyun.com/cn-hangzhou/instance/namespaces ,在個人版實例創建命名空間。

填寫命名空間,然后點擊“確定”

設置訪問憑證

打開https://cr.console.aliyun.com/cn-hangzhou/instance/credentials ,這里可以看到登錄的Registry實例(registry.cn-hangzhou.aliyuncs.com)。

點擊“設置固定密碼”

imageimage

設置Github倉庫workflow

新建Github倉庫

打開https://github.com/new , 輸入倉庫名,類型選擇Private,并添加README文件

設置Actions secrets

進入Actions secrets設置頁,點擊"New repository secret"

建立DOCKER_USERNAME和DOCKER_PASSWORD兩個secret,對應阿里云容器鏡像服務的登錄賬號和密碼

image

設置倉庫workflow

checkout代碼到本地。在代碼目錄下創建文件.github\workflows\sync.yaml,內容如下:

name: Sync Docker Image
run-name: ${{ github.actor }} is running GitHub Actions
on: [push]
jobs:
  Sync-Docker-Image-Actions:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v4
      - name: login to docker registry
        run: |
          docker login -u "${{ secrets.DOCKER_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}" registry.cn-hangzhou.aliyuncs.com
      - name: execute sync.sh
        run: |
          bash "${{ github.workspace }}/sync.sh"
      - run: echo "This job's status is ${{ job.status }}"

yaml定義的主體流程是

  • checkout代碼
  • 登錄到阿里云docker registry
  • 調用sync.sh作同步操作

在代碼目錄下創建sync.sh,注意按需調整以下幾個變量

1. TARGET_REGISTRY: 阿里云容器鏡像服務的Registry實例

2. TARGET_NAMESPACE: 阿里云容器鏡像服務的命名空間

3. IMAGES: 要同步的鏡像(本文中以Dify 1.3.0的幾個鏡像為例)

sync.sh腳本如下:

#!/bin/bash
set -eux

TARGET_REGISTRY=registry.cn-hangzhou.aliyuncs.com
TARGET_NAMESPACE=your_namespace
IMAGES="langgenius/dify-api:1.3.0 langgenius/dify-web:1.3.0 langgenius/dify-plugin-daemon:0.0.8-local"

for image in ${IMAGES};do
    # 拉取鏡像
    docker pull $image
    name=`echo ${image} | cut -d '/' -f2`
    tag=`echo ${name} | cut -d ':' -f2`
    targetFullName=${TARGET_REGISTRY}/${TARGET_NAMESPACE}/${name}
    # 打阿里云的tag
    docker tag ${image} ${targetFullName}
    # 推送到阿里云
    docker push ${targetFullName}
done

提交本地倉庫改動到Github

git add .
git commit -m "add workflow"
git push

驗證workflow

提交本地倉庫改動到Github后,驗證workflow的正確性

查看Actions workflow日志

imageimage

查看阿里云容器鏡像服務的鏡像版本

打開https://cr.console.aliyun.com/cn-hangzhou/instance/repositories ,可以看到自動創建了相應的鏡像倉庫

點擊“管理”,可查看鏡像版本

image

還可以查看拉取鏡像的命令

image

下載鏡像到本地

把命令中的your_namespace替換為你創建的命名空間。

# 登錄
docker login --username=you_username registry.cn-hangzhou.aliyuncs.com
# 拉取鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/your_namespace/dify-api:1.3.0
# 創建本地tag
docker tag registry.cn-hangzhou.aliyuncs.com/your_namespace/dify-api:1.3.0 langgenius/dify-api:1.3.0

總結

至此,我們完成了Docker鏡像同步的全流程。后續要同步其它鏡像,只需要修改sync.sh的IMAGES變量并提交。

責任編輯:龐桂玉 來源: AI大模型應用開發
相關推薦

2021-02-18 08:22:26

KubernetesDocker鏡像

2025-03-03 00:13:50

2025-06-18 03:00:00

DockerIPv6網絡Dify插件開發

2009-11-27 10:31:02

GPRS路由

2022-10-08 23:55:58

iOS蘋果開發

2021-12-03 12:15:01

QT中文亂碼Windows

2021-05-18 09:06:19

零信任郵件安全安全威脅

2021-03-13 21:00:30

電腦PC電腦彈窗廣告

2023-02-27 08:08:54

Pulsar源碼重復消費

2018-09-18 11:28:01

2009-12-21 14:12:30

路由器配置故障

2010-01-04 15:05:53

2010-08-26 09:06:44

路由器轉發故障

2009-12-14 18:18:10

路由器轉發故障

2023-11-28 08:36:16

Spring中Body讀取

2010-01-12 16:33:08

交換機故障

2009-02-11 09:35:00

DHCP服務器故障

2010-01-11 18:05:24

VB.NET窗體繼承

2009-12-22 14:59:23

2010-01-14 10:19:05

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区在线视频 | 欧美精品一区二区免费 | 影音先锋中文字幕在线观看 | 久久久久国产视频 | 在线国产一区 | 91精品观看 | 久久久久欧美 | 日韩在线 | 91精品麻豆日日躁夜夜躁 | 精品在线一区 | 视频一区 亚洲 | 久久精品91| 99久久精品国产一区二区三区 | 国产一区二区免费 | 久久精品一区 | 黄色一级片在线播放 | 日韩av免费看 | 97色在线视频 | 成人精品免费视频 | 国产超碰人人爽人人做人人爱 | 欧美aaaaa | 久久精品一区二区三区四区 | 亚洲日韩中文字幕一区 | 99热欧美| 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 成人九区 | 四虎在线播放 | 黄色一级片aaa | 亚洲国产小视频 | 春色av | 超碰伊人| 麻豆一区一区三区四区 | 久久精品久久精品 | 国产精品国产成人国产三级 | 欧美1—12sexvideos| 成人免费在线播放视频 | 亚洲一区成人 | 成人不卡视频 | 久久久久亚洲精品中文字幕 | 国产在线观看一区二区 | 精品欧美一区二区在线观看欧美熟 |