跳到主要内容
版本:最新版本(unreleased)

加载器镜像构建流程

构建业务镜像流程

1. 构建要求

  • Docker (20.10.0 or above)
  • 基于conda环境的服务(一个conda环境对应一个服务)

2. envd 安装

pip install --pre --upgrade envd
envd bootstrap

3. 导出当前的conda环境清单

conda env export > env.yaml

4.编写build.envd文件

选择要加载的基础镜像和配置conda的python版本

  • base(language="python3.8", os="ubuntu20.4")
  • 可选的base镜像
    • aiges_cpu
    • aiges_gpu

安装指定路径下的conda env环境清单

  • install.conda_packages(env_file="env.yaml")

安装系统依赖(将要安装的依赖写入name列表中,以逗号分开)

  • install.system_packages(name = ["..."])

将服务代码拷贝到业务镜像中

  • io.copy(src="./detectron2", dest="/")

离线安装(需要先进行文件拷贝然后进行安装)

  • io.copy(src="./detectron2", dest="/")
  • run(commands=["pip install -e /detectron2",])

安装源设置

  • config.pip_index()
  • config.conda_channel()

示例(存在可选的其他安装接口)

def build():
mirror_config()
base(language="python3.8", os="ubuntu20.4") # 加载基础镜像并设置conda内置的python版本
install.python_packages(name = [
"torch==1.10",
"openmim"
])
install.conda_packages(channel= ["pytorch"], env_file = "env.yaml") # 指定路径下进行conda yaml环境安装
install.python_packages(requirements="build.txt") # 指定路径下进行requirments.txt安装
install.system_packages(name = [ # 系统依赖安装
"libgl1-mesa-glx"
])
run(commands=[
"mim install mmcv-full", # 通过第三方工具mim来进行安装
])

io.copy(src="./detectron2", dest="/") # 本地文件到镜像的拷贝
run(commands=[ # 离线进行依赖包安装
"pip install -e /detectron2",
])
def mirror_config(): #下载源配置
config.pip_index(url = "https://pypi.tuna.tsinghua.edu.cn/simple")
config.conda_channel(channel="""
channels:
- defaults
show_channel_urls: true
default_channels:
- https://repo.anaconda.com/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
""")

5. 通过envd进行镜像构建

envd build -t 镜像名:TAG -f build.envd         

示例:envd build -t yolo:v1.0.0 -f build.envd