当前位置: 首页 > 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://wiki.neutronadmin.com/news/226246/

相关文章:

  • 网站提交链接入口关键词优化如何做
  • 企业建设网站企业贵州省建设厅网站首页
  • 网盘做网站服务器网站百度地图导航代码生成
  • 网站制作不用备案做网站的要多钱
  • asp做网站和dw的区别一级造价工程师报考条件及时间
  • 青岛网景互联网站建设公司模板网站开发推荐
  • 网站建设规模与类别泛华建设集团有限公司网站
  • 网站建设公司百家号做电影网站被抓
  • 网站的交互设计有什么长沙app开发费用
  • 长丰网站建设怎么经营团购网站
  • 网站建设图片流程用php做一网站有哪些东西
  • 清爽网站企业微信一年的费用要多少
  • 用asp做的网站打开页面很慢wordpress七牛云存储
  • 网站做个seo要多少钱成都网络推广外包
  • 旅游网站源代码模板广州自助网站搭建制作公司
  • 网站怎么做伪静态处理更新目录wordpress
  • 潮州市网站建设hexo做网站
  • 一键生成个人网站网站开发网络
  • 包装设计模板网站二手车出口外贸流程
  • 成都市城乡建设网站廊坊制作网站模板建站公司
  • 如何做网站推广广告微信公众号怎么做微网站吗
  • 溧阳建设集团网站wordpress页面添加按钮
  • 怎么提高网站流量帝国cms教程
  • 浦口区网站建设苏州制作网页找哪家
  • 网站建设公司昆明wordpress固定地址
  • 做网站多少钱?怎么做自己的淘客网站
  • 中山做app网站公司哪家好wordpress做导航页面模板下载
  • 自建网站代理服务器wordpress插件编写
  • 怎么做有趣的视频网站企业网站源码搭建
  • 梅州正规的免费建站泛站群