数码杂锅

  • 首页
  • docker应用
    • docker知识
    • docker可视化管理
    • AIGC相关
    • 内网穿透
    • 在线文档
    • 笔记软件
    • 聊天软件
    • 刮削工具
    • 浏览器
    • 运维平台
    • 音乐软件
    • 网盘工具
    • 网络工具
    • 书籍管理
    • 在线教育
    • 备份同步
    • 相册管理
    • 协同办公
    • 抽奖系统
    • 稍后阅读
    • 工具集软件
    • 脚本平台
    • 密码管理
    • 数据库管理
    • 族谱管理
    • 思维导图
    • 视频会议
    • 文件管理
    • 监控管理
    • 远程桌面
    • Nas系统
    • 下载工具
    • devops代码托管
    • 导航书签
    • 办公软件
    • 聚合网盘
    • 智能家居
    • 网盘搜索
    • 影音播放
  • Nas杂项
    • 飞牛
    • 群晖
  • 电脑知识
  • 隐私政策
数码爱好者的分享小站
  1. Main page
  2. 电脑知识
  3. Main content

使用github action自动构建镜像并推送到dockerhub

2025年2月23日 260hotness 0likes 0comments

dockerhub 获取 token

登录 dockerhub,获取token,如下

github-action-1

将 dockerhub token 添加到 github repo 中

github-action-2

github 仓库添加 action

github 代码仓库页面中选择 Actions

点击 Docker image Action 的 Configure

github-action-3

编辑action配置文件.github/workflows/docker-image.yml 内容如下

name: Docker Image CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    -
      name: Checkout
      uses: actions/checkout@v3
    -
      name: Login to Docker Hub
      uses: docker/login-action@v2
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_TOKEN }}
      - 
      name: Set up QEMU
      uses: docker/setup-qemu-action@v2
      -
      name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v2
    -
      name: Build and push
      uses: docker/build-push-action@v4
      with:
        context: .
        file: ./Dockerfile
        platforms: |
            linux/amd64
            linux/arm64
        push: true
        tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.GITHUB_REPOSITORY_NAME_PART }}:latest

buildx 依赖 qemu

以下对该文件内容分别进行解释:

  • name: 流程名,定义了这个流程的名称,可以与配置文件名不同。只要与其他流程配置文件中的流程名不同即可。
  • on: 触发条件,定义了在何种条件下触发该流程。这里定义的是在 main 分支提交时触发该流程。
  • env: 环境变量,定义了静态可公开环境变量,一般来说可以将应用的名称、镜像的名称写在这个部分。
  • jobs: 任务,定义了流程所需要执行的各项任务,可以是一个或多个。
    • 这里定义了 5 个任务,从前到后分别是
    • 检出代码
    • 登录到github,其中 ${{ secrets.DOCKERHUB_USERNAME }} 和 ${{ secrets.DOCKERHUB_TOKEN }} 分别是 dockerhub 的用户名和token,需要在dockerhub生成,然后配置在仓库-Settings-Security-Securets and variables - Actions中
    • 安装 qemu (buildx 依赖 qemu)
    • 安装 buildx,支持构建更多架构的惊喜
    • 构建docker镜像,并推送到dockerhub仓库
  • file: 指定在项目仓库中的Dockerfile文件位置。
  • platforms:指定构建镜像所需要兼容支持的平台架构
  • tags: 将要构建的镜像标签,这里每次构建latest镜像,${{ env.GITHUB_REPOSITORY_NAME_PART }}表示仓库名

注:docker/setup-qemu-action@v2 对应的就是 https://github.com/docker/setup-qemu-action 分支v2

来源:https://msdemt.github.io/p/github-action-build-docker/

相关文章

  • 转了这么多年标书的双层pdf这些细节你可能都没注意到,1000页word文档转换双层pdf只需要10分钟?
  • CUDA和cudnn的安装
  • ipad远程控制电脑顺滑操作
  • win10win11文件夹文件不刷新的解决办法
  • VMware虚拟机ikuai路由详细安装配置教程
  • 笔记本双显卡potplayer无法使用独显硬解码播放4k视频的解决方法(游戏同理)
  • 让手机播放视频像投屏电视般,投屏电脑
  • huggingface模型国内下载方法
Tag: Nothing
Last updated:2025年4月24日

红薯丸子

好好学习,天天向上

Like
< Last article
Next article >

Comments

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
Cancel

COPYRIGHT © 2024 红薯丸子. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

EnglishEnglish
简体中文简体中文