利用阿里云镜像仓库和 Github Action 同步镜像

利用阿里云镜像仓库和 Github Action 同步镜像

由于某些未知原因,国内无法直接从 DockerHub 拉取镜像,在不使用 VPN 等违法工具的情况下,可以利用 GitHub 的 Action 流水线功能,将镜像推送到阿里云的个人镜像仓库中。

这种方式相较于其他方式虽然相对麻烦,但好在免费,且实现难度较小。

1. 阿里云个人仓库

访问地址:https://cr.console.aliyun.com/cn-beijing/instances

1. 账号及实例创建

创建阿里云账号,搜索 容器镜像服务,创建个人实例。

在这里插入图片描述

2. 在访问凭证中设置固定密码

在这里插入图片描述

3. 本地登录阿里云
docker login --username=xxx crpi-4v627lfulndt6g9s.cn-beijing.personal.cr.aliyuncs.com

在这里插入图片描述

2. 创建 GitHub Action

1. 创建 GitHub 账号(过程略)
2. 创建仓库(过程略)
3. 配置 Action Secrets

在仓库的 Settings -> Secrets and variables -> Actions 中配置阿里云登录账号及密码

ALIYUN_DOCKER_USERNAMEALIYUN_DOCKER_PASSWORD

在这里插入图片描述

### 使用 GitHub Actions 实现自动构建 Docker 镜像 每当提交代码至 `master` 或者其他指定分支时,GitHub 可以触发一系列操作来完成从源码到可部署镜像的过程。为了实现这一目标,在仓库中创建 `.github/workflows/docker-build.yml` 文件用于定义工作流。 #### 定义 GitHub Actions 工作流程文件 下面是一个典型的 YAML 格式的配置样例: ```yaml name: Build and Push Docker Image on: push: branches: - main pull_request: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository code uses: actions/checkout@v2 - name: Log in to Docker Hub run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Cache Docker layers uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: Build and push Docker images env: IMAGE_NAME: my-docker-image-name run: | docker build . -t ${IMAGE_NAME}:latest docker tag ${IMAGE_NAME}:latest ghcr.io/${{ github.repository }}/my-docker-image:${{ github.ref_name }} docker push ghcr.io/${{ github.repository }}/my-docker-image:${{ github.ref_name }} ``` 上述脚本会在每次向默认分支推送新更改时启动整个流水线过程[^1]。具体来说,该动作会执行如下任务: - 自动检出最新的项目版本; - 登录到 Docker 注册表(这里假设使用的是 Docker Hub),以便能够上传生成好的镜像; - 构建并标记新的 Docker 映像; - 将映像推送到 GitHub Packages 或者其他的私有注册中心; 通过这种方式可以确保每一次更新都能及时反映在最终产品之中,并且减少了人工干预的可能性,提高了效率可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值