zoukankan      html  css  js  c++  java
  • OpenShift S2I 概念及流程

    S2I 概念

    S2I(Source To Image)即从源码到镜像的一个过程,OpenShift 将它作为基础功能提供给用户,包含 S2I CLI 工具 与 S2I 流程。通过这些工具和既定流程,能去掉开发和运维人员手动打镜像复杂性,只需要点一下构建按钮就能将 Git 仓库中的源码或程序制品打包成镜像,上传到镜像仓库中,触发后续的部署流程。

    S2I 的组成

    • S2I CLI 工具 - 生成构建S2I镜像需要的基础环境(包含默认Dockerfile、脚本、测试脚本)
    • 基础镜像 - 由基础环境中的Dockerfile中定义的镜像
    • 构建/运行脚本 - 构建与运行时脚本
      • save-artifacts - 用于保存增量构建「可选」
      • assemble - 组装复制制品到指定位置
      • run - 应用启动脚本
      • usage - 打印帮助提示
      • test/run - 测试运行脚本

    S2I 流程

    上边这张流程图来自官方文档以及参考更多资料,本人概括一下大致的流程:

    1. 首先下载 STI 脚本,这些脚本来自于 openshift/origin-docker-builder:<OpenShift版本> 这个镜像,所以是 pull 镜像。
    2. 使用以上镜像启动构建 docker 的容器,根据 BuildConfig 以及S2I镜像的 Dockerfile 标签定义,开始多阶段构建镜像
    3. 执行 openshift-git-clone --loglevel=0 命令,根据配置的参数拉取 Git 仓库上的源码或制品,拉到 /tmp (位置根据 s2i 镜像的标签 io.openshift.s2i.destination 定义),创建tar包,开始第二阶段构建
    4. 执行 openshift-manage-dockerfile --loglevel=0 修改 Dockerfile,修改 CMD 启动命令改为 执行 run 脚本,开始第三阶段构建
    5. 执行 openshift-sti-build --loglevel=0 执行 STI 脚本调用 assemble 将源码构建成制品再复制制品到指定目录,或者将制品放到指定目录,执行脚本完成后构建镜像(docker commit),最后推送镜像到内部镜像仓库,首次推送生成镜像流(ImageStream),任务完成停止容器。

    总结

    S2I 减少了开发运维人员打镜像的繁复步骤,将源码或制品构造成标准的、可部署的镜像。构建流程总体上就三步 下载 - 构建 - 推送

    由于作者理解可能有所偏颇,文章中可能出现错误,希望能得到您的评论指出,在此感谢。

    接下来几天,本人会更新自定义 OpenShift 镜像和模板相关内容,静请期待。

    本文同步发布于CSDN https://blog.csdn.net/u012586326/article/details/121363875 与 博客园 https://www.cnblogs.com/hellxz/,禁止转载。

  • 相关阅读:
    SQL Server事务执行一半出错是否自动回滚整个事务 【转】
    html5 canvas做的俄罗斯方块
    laravel-admin 模型创建、数据迁移、以及关联模型控制器
    laravel-admin 安装
    Composer 安装时要求输入授权用户名密码?
    查找mysql中未提交的事务
    SSH 登录时出现如下错误:No supported key exchange algorithms
    MySQL运行一段时间后自动停止问题的排查
    浅谈PHP中的数组和JS中的数组
    MySQL中使用group_concat()函数数据被截取(有默认长度限制),谨慎!
  • 原文地址:https://www.cnblogs.com/hellxz/p/15563305.html
Copyright © 2011-2022 走看看