# 基于 Docker Image 部署

    基于 Docker Image 部署本质上和 基于 Git 源码部署 相同,区别在于前者不需要源码构建 Image 产物。

    着手源码部署前,请确认已完成 项目和应用创建

    提示

    基于 Docker Image 部署同样需要编写 pipeline.yml 和 dice.yml(镜像名称将直接写入 dice.yml 文件中),因此平台仍将提供 Git 仓库用于存放两个 YAML 文件。 假设新建项目名为 erda-test,新建应用名为 java-demo。下文 Git 仓库地址将涉及这两个名称。

    # 示范镜像

    nginx:latest
    

    # 配置流水线

    # pipeline.yml

    基于 Docker Image 部署采用 pipeline 触发自动部署,可简单设置 3 个 Stage 如下:

    1. 从 Git 仓库拉取两个 YAML 文件。
    2. 通过 dice.yml 生成版本产物。
    3. 基于版本产物完成部署。

    3 个 Stage 可分别以下列 Action 执行:

    1. Git-Checkout (opens new window)
    2. Release (opens new window)
    3. Erda (opens new window)

    pipeline.yml 示例如下:

    version: "1.1"
    
    stages:
    - stage:
      - git-checkout:
    
    - stage:
      - release:
          params:
            dice_yml: ${git-checkout}/erda.yml
    
    - stage:
      - dice:
          params:
            release_id: ${release:OUTPUT:releaseID}
    

    # dice.yml

    dice.yml 示例如下,需修改内容为端口、CPU、内存资源、健康检查等,具体请参见 dice.yml




     














    version: "2.0"
    services:
      nginx:
        image: "nginx:latest"
        resources:
          cpu: 0.1
          mem: 128
        deployments:
          replicas: 1
        ports:
          - port: 80
            expose: true
        health_check:
          http:
            port: 80
            path: "/"
            duration: 30
    

    # 提交文件

    将新增的两个 YAML 文件提交至平台的代码仓库。

    git add .
    git commit -m "add pipeline.yml and erda.yml"
    git push erda feature/demo
    

    提示

    此处提交的远程仓库分支前缀为 feature/*,分支名称将直接决定应用部署的环境。

    # 执行流水线

    1. 进入 流水线 页面,选择 feature/demo 分支创建新的流水线任务。

    2. 完成流水线任务分析后,流水线处于待执行状态。点击右上角执行图标,开始流水线构建。

    3. 流水线任务执行过程中,可实时查看流水线各步骤的执行状态,点击日志可查看对应节点执行状况的日志信息。

    # 查看部署结果

    通过流水线构建源码并完成部署后,可在部署中心查看已成功部署的应用实例 Runtime。进入 Runtime 可进一步进行 应用管理 相关操作,例如配置域名、服务实例扩缩容等。

    提示

    • 由于 Docker Image 部署采用的镜像可由用户随意指定,部分三方镜像未针对集群环境进行调优,可能产生运行不稳定的情况。
    • 由于三方镜像缺少监控组件,部分监控能力缺失。若需完整的监控能力,需主动安装监控组件。
    • 三方镜像需注意正确设置时区,否则将导致日志顺序错乱等问题。