当前位置: 首页 > news >正文

佛山做网站哪家好志愿北京网站注册

佛山做网站哪家好,志愿北京网站注册,想做网站哪个公司比较好,佛山格尔做网站的公司一、Earthly 简介 Earthly 是一个更加高级的 Docker 镜像构建工具#xff0c;Earthly 通过自己定义的 Earthfile 来代替传统的 Dockerfile 完成镜像构建#xff1b;Earthfile 就如同 Earthly 官方所描述: Makefile Dockerfile Earthfile在使用 Earthly 进行构建镜像时目前…一、Earthly 简介 Earthly 是一个更加高级的 Docker 镜像构建工具Earthly 通过自己定义的 Earthfile 来代替传统的 Dockerfile 完成镜像构建Earthfile 就如同 Earthly 官方所描述: Makefile Dockerfile Earthfile在使用 Earthly 进行构建镜像时目前强依赖于 buildkitEarthly 通过 buildkit 支持了一些 Dockerfile 的扩展语法同时将 Dockerfile 与 Makefile 整合使得多平台构建和代码化 Dockerfile 变得更加简单使用 Earthly 可以更加方便的完成 Dockerfile 的代码复用以及更加友好的 CI 自动集成。 二、快速使用 ① 安装依赖 Earthly 目前依赖于 Docker 和 Git所以安装 Earthly 前请确保机器已经安装了 Docker 和 Git。 ② 安装 Earthly Earthly 采用 Go 编写因此主要就一个二进制文件Linux 下安装可以直接参考官方的安装脚本: $ sudo /bin/sh -c wget https://github.com/earthly/earthly/releases/latest/download/earthly-linux-amd64 -O /usr/local/bin/earthly chmod x /usr/local/bin/earthly /usr/local/bin/earthly bootstrap --with-autocomplete安装完成后 Earthly 将会启动一个 buildkitd 容器earthly-buildkitd。 ③ 语法高亮 目前 Earthly 官方支持 VS Code、VIM 以及 Sublime Text 三种编辑器的语法高亮具体如何安装请参考 官方文档。 ④ 基本使用 本示例源于官方 Basic 教程以下示例以编译 Go 项目为样例。首先创建一个任意名称的目录目录中存在项目源码文件以及一个 Earthfile 文件 main.go package mainimport fmtfunc main() {fmt.Println(hello world) }Earthfile FROM golang:1.17-alpine WORKDIR /go-examplebuild:COPY main.go .RUN go build -o build/go-example main.goSAVE ARTIFACT build/go-example /go-example AS LOCAL build/go-exampledocker:COPY build/go-example .ENTRYPOINT [/go-example/go-example]SAVE IMAGE go-example:latest有了 Earthfile 以后就可以使用 Earthly 将其打包为镜像 # 目录结构 ~/t/earthlytest ❯❯❯ tree . ├── Earthfile └── main.go0 directories, 2 files# 通过 earthly 进行构建 ~/t/earthlytest ❯❯❯ earthly docker构建完成后就可以直接从 docker 的 images 列表中查看刚刚构建的镜像并运行 三、进阶使用 ① 多阶段构建 Earthfile 中包含类似 Makefile 一样的 target不同的 target 之间还可以通过特定语法进行引用每个 target 都可以被单独执行执行过程中 earthly 会自动解析这些依赖关系。这种多阶段构建时语法很弹性可以在每个阶段运行独立的命令以及使用不同的基础镜像从上文中可以看到始终使用了一个基础镜像golang:1.17-alpine对于 Go 这种编译后自带运行时不依赖其语言 SDK 的应用事实上可以将 “发布物” 仅放在简单的运行时系统镜像内从而减少最终镜像体积 由于使用了多个 target因此可以单独的运行 build 这个 target 来验证编译流程这种多 target 的设计方便我们构建应用时对编译、打包步骤的细化拆分同时也方便我们进行单独的验证。 例如单独执行 build 这个 target 来验证编译流程是否正确: 在其他阶段验证完成后可以直接运行最终的 targetearthly 会自动识别到这种依赖关系从而自动运行其依赖的 target ② 扩展指令 SAVE SAVE 指令是 Earthly 自己的一个扩展指令实际上分为 SAVE ARTIFACT 和 SAVE IMAGE其中 SAVE ARTIFACT 指令格式如下: SAVE ARTIFACT [--keep-ts] [--keep-own] [--if-exists] [--force] src [artifact-dest-path] [AS LOCAL local-path]SAVE ARTIFACT 指令用于将文件或目录从 build 运行时环境保存到 target 的 artifact 环境当保存到 artifact 环境后可以通过 COPY 等命令在其它位置进行引用类似于 Dockerfile 的 COPY --from… 语法不同的是 SAVE ARTIFACT 支持 AS LOCAL 附加参数一但指定此参数后earthly 会同时将文件或目录在宿主机复制一份一般用于调试等目的。SAVE ARTIFACT 命令在上面的样例中已经展示了在运行完 earthly build 命令后实际上会在本地看到被 SAVE 出来的 ARTIFACT 而另一个 SAVE IMAGE 指令则主要用于将当前的 build 环境 SAVE 为一个 IMAGE如果指定了 --push 选项同时在执行 earthly target 命令时也加入 --push 选项该镜像将会自动被推送到目标 Registry 上。SAVE IMAGE 指令格式如下 SAVE IMAGE [--cache-fromcache-image] [--push] image-name...GIT CLONE GIT CLONE 指令用于将指定 git 仓库 clone 到 build 环境中与 RUN git clone… 命令不同的是GIT CLONE 通过宿主机的 git 命令运行它不依赖于容器内的 git 命令同时还可以直接为 earthly 配置 git 认证从而避免将这些安全信息泄漏到 build 环境中 关于如何配置 earthly 的 git 认证请参考 官方文档。 如下是 GIT CLONE 指令的样例 COPY COPY 指令与标准的 Dockerfile COPY 指令类似除了支持 Dockerfile 标准的 COPY 功能以外earthly 中的 COPY 指令可以引用其他 target 环节产生的 artifact在引用时会自动声明依赖关系即当在 B target 中存在 COPY A/xxxxx /path/to/copy 类似的指令时如果只单纯的执行 earthly B那么 earthly 根据依赖分析会得出在 COPY 之前需要执行 target A。 COPY 指令的语法格式如下 # 与 Dockerfile 相同的使用方式从上下文复制 COPY [options...] src... dest# 扩展支持的从 target 复制方式 COPY [options...] src-artifact... destRUN RUN 指令在标准使用上与 Dockerfile 里保持一致除此之外增加了更多的扩展选项其指令格式如下 # shell 方式运行(/bin/sh -c) RUN [--push] [--entrypoint] [--privileged] [--secret env-varsecret-ref] [--ssh] [--mount mount-spec] [--] command# exec 方式运行 RUN [[flags...], executable, arg1, arg2, ...]其中 --privileged 选项允许运行的命令使用 privileged capabilities但是需要 earthly 在运行 target 时增加 --allow-privileged 选项–interactive / --interactive-keep 选项用于交互式执行一些命令在完成交互后 build 继续进行在交互过程中进行的操作都会被持久化到镜像中 其它的具体指令请查阅官方文档。 ③ UDCS UDCs 全称 “User-defined commands”即用户定义指令通过 UDCs 我们可以将 Earthfile 中特定的命令剥离出来从而实现更加通用和统一的代码复用。如下是一个定义 UDCs 指令的样例 # 定义一个 Command # ⚠️ 注意: 语法必须满足以下规则 # 1、名称全大写 # 2、名称下划线分割 # 3、首个命令必须为 COMMAND(后面没有冒号) MY_COPY:COMMANDARG srcARG dest./ARG recursivefalseRUN cp $(if $recursive true; then printf -- -r; fi) $src $dest# target 中引用 build:FROM alpine:3.13WORKDIR /udc-exampleRUN echo hello ./foo# 通过 DO 关键字引用 UDCsDO MY_COPY --src./foo --dest./barRUN cat ./bar # prints helloUDCs 不光可以定义在一个 Earthfile 中UDCs 可以跨文件、跨目录引用 有了 UDCs 以后我们可以通过这种方式将对基础镜像的版本统一控制、对特殊镜像的通用处理等操作全部抽象出来然后每个 Earthfile 根据需要进行引用。 ④ 多平台构建 在以前使用 Dockerfile 的时候需要自己配置然后开启 buildkit 来实现多平台构建在配置过程中可能会很繁琐现在使用 earthly 可以默认帮实现多平台的交叉编译需要做的仅仅是在 Earthfile 中声明需要支持哪些平台而已 以上 Earthfile 在执行 earthly --push all 构建时将会自动构建四个平台的镜像并保持单个 tag同时由于使用了 --push 选项还会自动推送到 Docker Hub 上 四、总结 Earthly 弥补了 Dockerfile 的很多不足解决了很多痛点问题但同样可能需要一些学习成本但是如果已经熟悉了 Dockerfile 其实学习成本不高所以目前还是比较推荐将 Dockerfile 切换为 Earthfile 进行统一和版本化管理的。
http://www.pierceye.com/news/23275/

相关文章:

  • 设计大神云集的网站是工作态度
  • 网站的tdk指的是什么意思企业所得税率2022最新
  • 杭州网站建设方案wordpress喜欢功能
  • 做徽标的网站展示网站开发
  • 网站推广软文代发怎么新建一个网站
  • 海南省最新消息龙岩关键词优化排名
  • 做网站 图文教程网页设计跟网站建设
  • 升降机网站怎么做广东省住房和城乡建设厅证件查询
  • 泰安网站建设案例个人建设网站维护费是多少
  • 有意义网站视频制作专业软件
  • 国家级示范建设网站做exo小说的网站
  • 电子商务网站建设实战德州seo外包
  • 有没有做盗版电影网站犯罪的如何搭建一个公司网站
  • 网站集约化建设工作讲话网站icp没有备案怎么检查
  • 宣传展示型网站设计百度首页排名怎么做到
  • 音乐网站怎么做精准关键词九江县网站建设
  • 行业网站解决方案wordpress使用hhvm
  • wordpress 小说站wordpress教程之
  • 网站开发合同 保密条款个人网站可以做商业吗
  • 学做网站能找到工作么黄山旅游攻略必玩的景点
  • 安阳网站公司厦门比较有名的设计公司
  • 企业网站建设有几种形式制作网站river
  • 网站设置访问权限网站以前在百度能搜索不到了
  • 高端网站建设哪家更专业腾讯广告投放管理平台
  • 含山县城市建设有限公司网站长沙景点分布图
  • 药理学网站建设方案wordpress面包屑导航插件
  • 中山小型网站建设公司网站推广维护
  • 网站分站系网站开发招标技术规范书
  • 做网站如何大网页温州网站优化关键词
  • 百度知道入口盐城seo培训