DockerHub基于Github自动化构建

2023-05-16

Docker Hub上的自动化构建

关于自动化构建

自动化构建是一个特殊的功能,它允许您在 Docker Hub 上使用构建集群,根据指定的 Dockerfile 或者 GitHub 、 BitBucket 仓库(或环境)来自动创建镜像。该系统将从仓库复制一份,并根据以仓库为环境的 Dockerfile 的描述构建镜像。由此产生的镜像将被上传到注册表,并且自动生成标记。

自动化构建有许多优势:

  • 你的自动化构建项目一定是准确按照预期构建的
  • 在 Docker Hub 注册表上,任何拥有你仓库访问权限的用户都乐意浏览 Dockerfile
  • 自动化构建保证了你的仓库总是最新的

自动化构建支持 GitHub 和 BitBucket 的私有和公有的仓库。

要使用自动化构建,你必须拥有经过验证有效的 Docker Hub 账户和 GitHub/Bitbucket 账户。

设置GitHub自动化构建

首先,你需要将 GitHub 账户链接到你的 Docker Hub 账户,以允许注册表查看你的仓库。

注:目前我们需要有读写权限以建立 Docker Hub 和 GitHub 的挂钩服务,这是GitHub管理权限的方式,我们别无选择。抱歉!我们将保护您的账户及隐私,确保不会被他人非法获取。

开始构建!登录到你的 Docker Hub 账户,点击屏幕右上方的 "+ Add Repository" 按钮,选择自动化构建。

选择GitHub服务

然后按照说明授权和连接你的 GitHub 账户到 Docker Hub。连接成功后,你就可以选择用来自动化构建的仓库了。

创建一个自动化构建项目

你可以用你的 Dockerfile 从你的公共或者私有仓库创建一个自动化构建项目。

GitHub子模块

如果你的 GitHub 仓库包含了私有子模块的连接,你需要在 Docker Hub 上添加部署秘钥。

部署秘钥位于自动化构建主页的 “Build Details” 菜单。访问设置 GitHub 仓库的页面,选择 “Deploy keys” 来添加秘钥。

StepScreenshotDescription
1.你的自动化构建部署秘钥位于 “Build Details” 菜单的 “Deploy keys” 下。
2.在你的 GitHub 子模块仓库设置页,添加部署秘钥。

GitHub组织

一旦你的组织成员身份设置为公开,对应的 GitHub 组织状态便会被公开在你的 GitHub 上。为了验证,你可以查看 GitHub 上你的组织的成员选项卡。

GitHub服务挂钩

按照以下步骤配置自动化构建的 GitHub 服务挂钩:

StepScreenshotDescription
1.登录到 GitHub.com,并转到您的仓库页面,点击右侧页面“Settings”。 执行该操作要求你有该仓库的管理员权限。
2.Webhooks & Services点击页面左侧的“Webhooks & Services”。
3.Find the service labeled Docker找到 "Docker" 并点击它.
4.Activate Service Hooks
============================================================================


最后一步

相信很多新手看完上面的指南仍然云里雾里,留了最后一层窗户纸:在Github项目顶层目录添加配套的Dockerfile

FROM ubuntu

MAINTAINER Wei Zhou <cszhouwei@gmail.com>

RUN apt-get update; \
    apt-get -y upgrade

RUN apt-get -y install g++ cmake git subversion

RUN mkdir /home/git; \
    cd /home/git; \
    sudo git clone https://github.com/cszhouwei/cmake_demo.git -b master; \
    cd cmake_demo; \
    mkdir build; \
    cd build; \
    cmake -DCMAKE_BUILD_TYPE=Release ../; \
    make
    
CMD ["/home/git/cmake_demo/buld/module_xxx/module_xxx", "--config", "/etc/module_xxx.conf"]
上述Dockerfile位于我的cmake_demo示例项目,有兴趣的读者请自取!

Github:https://github.com/cszhouwei/cmake_demo.git

DockerHub:docker pull cszhouwei/cmake-demo


参考文献

https://github.com/widuu/chinese_docker/blob/master/SUMMARY.md

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DockerHub基于Github自动化构建 的相关文章

  • 如何将Github中的develop分支设置为默认分支而不是master?

    我知道这可以在存储库的管理页面上完成 可以在那里设置另一个默认分支 这就是这个问题的答案 但我发现 也许是一个错误 以下内容 如果你的master分支和develop分支完全相同 那么git克隆将不会克隆默认的 develop 分支 但仍然
  • Visual Studio 2013 GitHub 头像未显示

    我已经使用 GitHub 设置了 VS 2013 我的问题是 当我提交到 GitHub 时 我看不到我的 GitHub 头像 如本文所述post http blogs msdn com b visualstudioalm archive 2
  • 为了使“我的更改”正常工作,Github 的正确 VCS 用户名设置是什么?

    我有一个适合个人的 TeamCity 持续构建流程设置GitHub项目 https github com benpowell HelloTxt NET效果很好 但是 在 TeamCity 中 我想在 我的更改 下查看提交列表 http te
  • 无法更改 GitHub Pages 中的源分支

    我为 GitHub Pages 创建了一个简单的网站 该网站的源位于 master 分支中 生成的网站 我希望看到发布的 位于 gh pages 分支下 我希望能够在设置中更改网站的来源 但是设置是灰色的 我无法更改它 请参见下面的屏幕截图
  • Travis CI 不使用 pom.xml 中提供的额外 Maven 存储库

    我有一个基于 Java 的 GitHub 项目 健身jiffy 弹簧 https github com steve perkins fitnessjiffy spring tree bootstrap 我目前专注于 bootstrap 分支
  • 带有 GitHub 页面的 Favicon

    我正在托管一些带有 GitHub 页面 用户和项目页面 的网站 但它们没有显示其图标 在浏览器中 是 GitHub 显示站点的问题吗 我知道可以显示网站图标 至少使用 Jekyll 但是我可以单独显示网站图标吗 是的你可以 把这个放入hea
  • 如何在 GitHub Action 中推送到受保护的主分支?

    这是我的 github 操作工作流程 name Release on push branches main jobs release name Release runs on ubuntu latest steps name Checkou
  • 在命令行中从 github 下载特定文件,而不是克隆整个存储库

    如何使用命令行从 github 下载 2 个文件 内容如下 git fetch git github com username Project git file1 git fetch git github com username Proj
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • Google Cloud Kubernetes 访问私有 Docker Hub 托管映像

    是否可以将私有镜像从 Docker Hub 拉取到 Google Cloud Kubernetes 集群 是否建议这样做 或者我是否需要将我的私有映像也推送到 Google Cloud 我阅读了文档 但没有发现任何内容可以清楚地解释这一点
  • git 克隆错误:致命:git upload-pack:由于远程端可能的存储库损坏而中止

    我对 git 存储库具有读 写访问权限 但是当我尝试 git clone 时 出现以下错误 x ubuntu temp git clone email protected cdn cgi l email protection Corp ap
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • 主存储库和本地存储库在同一台机器上

    我是 Git 新手 我已经在 Linux 服务器中创建了一个主存储库 同一个服务器将由 5 组 每组 3 个用户 使用 我想为每个组创建一个本地存储库 小组成员又应该为每个人创建一个本地存储库 使用内容并将修改提交到小组的本地存储库 我该怎
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • 从分叉存储库的 GitHub 操作发布评论的解决方法

    我需要在 GitHub 操作完成后向 GitHub 拉取请求发表评论 例如当 FOSS 社区成员提交 PR 时 我知道 当操作从分叉的存储库运行时 令牌没有对父存储库的写访问权限 因此它无法发布评论 人们是否为此找到了任何可行的解决方法 我
  • 将“复制到剪贴板”添加到 GitHub markdown 的简单方法?

    具体来说 我有一些用于安装的代码块 我希望用户能够快速将其复制并粘贴到终端中 我想要一个用于代码块 复制到剪贴板 的按钮 由于 git 克隆 URL 有一个 复制到剪贴板 按钮 我想知道我是否可以利用该按钮 或者如果不能 是否可以将一些相对
  • Github:我的仓库登陆页面上缺少“设置”菜单

    设置 菜单应该是最后一个菜单 位于 图形 菜单之后 没有 设置 菜单会影响我设置 Webhook 的能力 是的 这是我的仓库 我拥有它 landing page of my test repo travis repo 我今天也遇到了同样的问
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我

随机推荐

  • 第一章 PX4-Pixhawk-程序编译过程解析

    第一章 PX4程序编译过程解析 PX4是一款软硬件开源的项目 xff0c 目的在于学习和研究 其中也有比较好的编程习惯 xff0c 大家不妨可以学习一下国外牛人的编程习惯 这个项目是苏黎世联邦理工大学的一个实验室搞出来的 该方案是基于NUT
  • 详解几种飞控的姿态解算算法

    姿态解算是飞控的一个基础 重要部分 xff0c 估计出来的姿态会发布给姿态控制器 xff0c 控制飞行平稳 xff0c 是飞行稳定 的最重要保障 有关姿态解算的基础知识 xff0c 这里笔者不会细细描述 xff0c 有关这方面的资料 xff
  • 陀螺仪的数据处理

    1 陀螺仪数据校准 1 1 原理 一款飞控上的传感器是需要进行校准的 xff0c 比如这里讲的陀螺仪 目前大多数的陀螺校准其实就是去掉零点偏移量 xff0c 采集一定的数据 xff0c 求平均 xff0c 这个平均值就是零点偏移 xff0c
  • LevelDB源码分析之从Put说起

    之前分享的文章leveldb实现原理分析详细描述了LevelDB的实现原理 xff0c 本文从Put接口来看下leveldb数据写流程的源码实现 LevelDB的读写接口在类DB中定义 xff08 leveldb db h xff09 xf
  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 xff0c 很久没有进行系统的总结了 xff0c 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 xff0c 如内容有错误 xff0c 欢迎指出 1
  • 作为资深的无人机从业者,卡尔曼滤波你不能不知道 通俗易懂的来说卡尔曼滤波

    旋翼无人机的两类主要算法 先说一个旋翼类无人机系统的算法主要有两类 xff1a 姿态检测算法 姿态控制算法 姿态控制 被控对象 xff08 即四旋翼无人机 xff09 姿态检测三个部分构成一个闭环控制系统 被控对象的模型是由其物理系统决定
  • pixhawk commander.cpp的飞行模式切换解读

    commander cpp逻辑性太强了 xff0c 涉及整个系统的运作 xff0c 所以分别拆分成小块看 另此篇blog大部分是参考 xff08 Pixhawk原生固件解读 xff09 飞行模式 xff0c 控制模式的思路 xff0c 笔者
  • Pixhawk代码分析-源码框架

    源码框架 pixhawk代码框架 xff1a pixhawk代码框架基础分析 xff1a 阅读下面内容时请结合源码阅读 xff0c 便于理解 The basic structure of ArduPilot is broken up int
  • Pixhawk代码分析-姿态解算篇A

    姿态解算篇A 基本知识 1 如何实现控制 一个无人机系统的算法主要有两类 xff1a 姿态检测算法 姿态控制算法 姿态控制 被控对象 姿态检测三个部分构成一个闭环控制系统 被控对象的模型是由其物理系统决定 xff0c 设计无人机的算法就是设
  • 电路知识--认识原理图(一)

    开源硬件 xff0c 一个很重要的的一点就是有开放的原理图 xff0c 通过原理图 xff0c 我们可以了解一个模块的输入输出 xff0c 以及使用的芯片类型从而知道使用方法等几乎一切信息 原理图上有很多信息 xff0c 到底怎么看呢 xf
  • 初学PX4之飞控算法

    通知 xff1a 如果你对本站无人机文章不熟悉 xff0c 建议查看无人机学习概览 xff01 xff01 xff01 注意 xff1a 基于参考原因 xff0c 本文参杂了APM的算法分析 本篇文章首先简述了下px4和apm调用姿态相关应
  • Pixhawk之姿态控制篇

    一 开篇 姿态控制篇终于来了 来了 来了 心情爽不爽 xff1f 愉悦不愉悦 xff1f 开心不开心 xff1f 喜欢的话就请我吃顿饭吧 xff0c 哈哈 其实这篇blog一周前就应该写的 xff0c 可惜被上一篇blog霸占了 但是也不算
  • PX4原生固件SPI驱动动编写与IMU传感器替换

    适用于PX4原生固件 核心目标 xff1a 完成XSENS的MTI3 xff0c IMU替换 MTI3是一款航姿参考系统 xff0c 可以独立的输出四元数 xff0c 加速度 xff0c 磁力计等 xff0c 角速度等航姿信息 里面有完整的
  • C语言指针详解----指针声明定义赋值

    C语言的指针是让新手很头疼的事情 xff0c 但是由于其太过于灵活 xff0c 以至于可以很好得的解决一些复杂的问题 xff0c 因此不得不掌握 我最近正在学习指针相关的内容 xff0c 因此在这里做一个小的总结 本篇是不涉及到函数以及结构
  • 【slam-2020-01-02】扩展应用

    一篇比较全面的slam博客 一 VR 43 AR 1 VR和AR的关系 AR MR是平台 xff0c 覆盖面比VR更广 xff0c VR是一种媒体形式 xff0c 任何用得到媒体的场景 xff0c 如娱乐 教育等 xff0c 都会有VR的影
  • nvidia-smi卡顿详解

    如果显卡数量在4张以上 xff0c 在nvidia smi信息后会非常的慢 xff0c 非常的卡 尤其在只在乎计算量服务器的时候 我试过把8张卡 tesla K80 显卡一个个拆下来 8张 7张 6 5 4 3 2 1 试试nvidia s
  • c语言将十进制数转换为16进制的函数

    有3种方式实现 xff0c 其中两种是使用系统函数 xff0c 另一种是直接自己编写 使用系统函数实现要加入 include lt stdlib h gt xff0c 自己编写则不需要这个头文件 下面的代码就是3种方式的实现 xff0c 包
  • go-gl搭建开发环境(一)

    1 简介 Go语言 xff08 Golang xff09 是Google在2009年推出的一种编程语言 Golang是一门开源的语言 xff0c 可以从github上找到它的源码 Golang也是一门跨平台的语言 xff0c 可以运行在Wi
  • 串口UART透传WiFi模块常见的几种参数配置方法含web网页配置

    串口透传WiFi参数配置方法 目前 xff0c 在嵌入式领域 xff0c 智能家居 智能工业 智能公交等等控制中 xff0c WiFi 已经成为了一种普遍被采用的技术 笔者常年在嵌入式 WiFi 行业做一线技术开发 本文我们将介绍串口 wi
  • DockerHub基于Github自动化构建

    Docker Hub上的自动化构建 关于自动化构建 自动化构建是一个特殊的功能 xff0c 它允许您在 Docker Hub 上使用构建集群 xff0c 根据指定的 Dockerfile 或者 GitHub BitBucket 仓库 xff