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

徹底解決Docker鏡像無法下載

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

前言

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

由于眾所周知的限制,國內(nèi)開發(fā)者訪問Docker Hub面臨諸多不便,且多個(gè)國內(nèi)鏡像源陸續(xù)出現(xiàn)了無法使用的情況。

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

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

GitHub Workflow介紹

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

核心概念

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

設(shè)置阿里云容器鏡像服務(wù)

創(chuàng)建命名空間

打開https://cr.console.aliyun.com/cn-hangzhou/instance/namespaces ,在個(gè)人版實(shí)例創(chuàng)建命名空間。

填寫命名空間,然后點(diǎn)擊“確定”

設(shè)置訪問憑證

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

點(diǎn)擊“設(shè)置固定密碼”

imageimage

設(shè)置Github倉庫workflow

新建Github倉庫

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

設(shè)置Actions secrets

進(jìn)入Actions secrets設(shè)置頁,點(diǎn)擊"New repository secret"

建立DOCKER_USERNAME和DOCKER_PASSWORD兩個(gè)secret,對應(yīng)阿里云容器鏡像服務(wù)的登錄賬號和密碼

image

設(shè)置倉庫workflow

checkout代碼到本地。在代碼目錄下創(chuàng)建文件.github\workflows\sync.yaml,內(nèi)容如下:

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
  • 調(diào)用sync.sh作同步操作

在代碼目錄下創(chuàng)建sync.sh,注意按需調(diào)整以下幾個(gè)變量

1. TARGET_REGISTRY: 阿里云容器鏡像服務(wù)的Registry實(shí)例

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

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

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

驗(yàn)證workflow

提交本地倉庫改動到Github后,驗(yàn)證workflow的正確性

查看Actions workflow日志

imageimage

查看阿里云容器鏡像服務(wù)的鏡像版本

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

點(diǎn)擊“管理”,可查看鏡像版本

image

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

image

下載鏡像到本地

把命令中的your_namespace替換為你創(chuàng)建的命名空間。

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

總結(jié)

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

責(zé)任編輯:龐桂玉 來源: AI大模型應(yīng)用開發(fā)
相關(guān)推薦

2021-02-18 08:22:26

KubernetesDocker鏡像

2025-03-03 00:13:50

2025-06-18 03:00:00

DockerIPv6網(wǎng)絡(luò)Dify插件開發(fā)

2022-10-08 23:55:58

iOS蘋果開發(fā)

2021-12-03 12:15:01

QT中文亂碼Windows

2009-11-27 10:31:02

GPRS路由

2023-02-27 08:08:54

Pulsar源碼重復(fù)消費(fèi)

2009-12-21 14:12:30

路由器配置故障

2018-09-18 11:28:01

2021-03-13 21:00:30

電腦PC電腦彈窗廣告

2021-05-18 09:06:19

零信任郵件安全安全威脅

2010-01-11 18:05:24

VB.NET窗體繼承

2010-01-12 16:33:08

交換機(jī)故障

2009-02-11 09:35:00

DHCP服務(wù)器故障

2009-12-14 18:18:10

路由器轉(zhuǎn)發(fā)故障

2010-01-04 15:05:53

2010-08-26 09:06:44

路由器轉(zhuǎn)發(fā)故障

2023-11-28 08:36:16

Spring中Body讀取

2021-08-28 23:23:01

電腦廣告程序

2009-07-23 18:58:40

微軟Linux虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品久久久久一区二区国产 | 青青草一区二区 | 国产一区二区久久 | 日韩欧美一区在线 | 国产伦精品一区二区三毛 | 久久久精品久久久 | 91免费视频观看 | 日本黄色影片在线观看 | 亚洲精品久久 | 美女亚洲一区 | 蜜臀网 | 久久精品中文 | 日韩一区二区在线视频 | 中文字幕91av | 日本精品视频一区二区三区四区 | 粉嫩粉嫩芽的虎白女18在线视频 | 国产jizz女人多喷水99 | 国产欧美一区二区久久性色99 | 天天久久| 天天操网 | 国产视频综合 | 天天草视频 | 黄色av网站在线观看 | 国产精品美女久久久久久免费 | 国产精品久久一区二区三区 | 亚洲精品成人 | 综合色导航| 欧美一级免费片 | www网站在线观看 | 国产真实乱全部视频 | 亚洲区视频 | 久久久久久久久久久久一区二区 | 国产精品一码二码三码在线 | 91久久久久| 精品熟人一区二区三区四区 | 国产精品91久久久久久 | 成人亚洲精品久久久久软件 | 日韩视频中文字幕 | 欧美国产91 | 久久国产精彩视频 | 亚洲国产精品第一区二区 |