Dockerfile
概述
代码主目录下有 Dockerfile 文件,Rainbond 会识别代码语言类型为 Dockerfile。
Rainbond 支持灵活的 Dockerfile 部署方式:
- 支持多个 Dockerfile 文件(如 Dockerfile.prd、Dockerfile.test)
- 支持多级目录下的 Dockerfile(最多二级目录)
- 支持指定不同环境的 Dockerfile 进行构建
编译原理
识别为 Dockerfile 类型的源码将使用类似于 docker build -t xxx . 的命令进行镜像构建。
默认构建命令:
docker build -t xxx .
指定 Dockerfile 文件构建:
docker build -t xxx -f Dockerfile.prd .
多级目录 Dockerfile 构建(在项目根目录执行):
docker build -t xxx -f test/test/Dockerfile.test .
构建过程支持:
- Docker multi-stage(多阶段构建)
- ARG 参数指定
- 自定义 Dockerfile 路径(最多支持二级目录)
Dockerfile 规范
Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
Rainbond 在源码检测阶段会读取 Dockerfile 定义的如下参数:
| 参数类型 | 名称 | 说明 |
|---|---|---|
| ENV | 环境变量 | 识别为服务可设置的环境变量配置 |
| ARG | 构建参数 | 识别为构建可设置的参数配置 |
| EXPOSE | 暴露端口 | 识别为服务的端口配置 |
| VOLUME | 持久化存储 | 识别为服务的共享持久化存储配置 |
支持的 Dockerfile 命名方式
Rainbond 支持以下 Dockerfile 命名格式:
- 标准命名:
Dockerfile - 环境后缀命名:
Dockerfile.prd(生产环境)Dockerfile.test(测试环境)Dockerfile.dev(开发环境)- 或其他自定 义后缀
支持的 Dockerfile 路径
Dockerfile 可以放置在以下位置(最多支持二级目录):
根目录:
project/
└── Dockerfile
一级目录:
project/
└── docker/
└── Dockerfile.prd
二级目录:
project/
└── build/
└── docker/
└── Dockerfile.test
提示
如果 Dockerfile 中使用私有镜像,需要配置镜像仓库授权,请参考源码构建使用私有镜像
部署示例
- 基于源码创建组件,填写以下信息:
| 内容 | |
|---|---|
| 组件名称 | 自定义 |
| 组件英文名称 | 自定义 |
| 仓库地址 | https://gitee.com/rainbond/dockerfile-demo.git |
| 代码版本 | master |
- 识别为多 Dockerfile 项目,选择您要构建的 Dockerfile 文件,点击构建启动。