build 构建镜像
Sealos 的 build 命令用于使用 Sealfiles、Kubefiles、Dockerfiles 或 Containerfiles 中的指令构建 OCI 镜像。这是 Sealos 构建集群镜像的基础命令。
如果没有指定任何参数,Sealos 将使用当前工作目录作为构建上下文,并查找指令文件。如果不存在 Sealfile、Kubefile、Dockerfile 或 Containerfile,则构建失败。
下面是一些主要的 build 选项:
- --all-platforms:尝试为所有基础镜像平台构建镜像。
- --authfile:认证文件的路径。
- --build-arg:向构建器提供的- argument=value。
- --build-context:向构建器提供额外构建上下文的- argument=value。
- --creds:访问 registry 使用的- [username[:password]]。
- -D, --disable-compression:默认不压缩图层。
- --env:为镜像设置环境变量。
- -f, --file:Dockerfile 的- pathname 或 URL。
- --force-rm:即使构建不成功,也始终在构建后删除中间容器。
- --format:构建的镜像的清单和元数据的- format。
- --from:用于替换 Containerfile 中第一条 FROM 指令的值的镜像名称。
- --http-proxy:传递 HTTP Proxy 环境变量。
- --isolation:使用的进程隔离- type。可以是 'oci' 或 'chroot'。
- --max-pull-procs:拉取时使用的最大 goroutine 数量。
- --platform:设置镜像的 OS/ARCH/VARIANT 为提供的值,而不是主机的当前操作系统和架构。
- --pull:从 registry 拉取镜像,如果新的或存储中不存在,则拉取,如果 false,只有在不存在时才拉取镜像,如果 always,即使命名的镜像存在于存储中,也拉取镜像,如果 never,只使用存储中可用的镜像。
- -q, --quiet:克制不宣布构建指令和镜像读/写进度。
- --retry:在执行 push/pull 失败时重试的次数。
- --retry-delay:在 push/pull 失败时重试的延迟。
- --rm:在成功构建后删除中间容器。
- --save-image:保存从特定目录解析的镜像,以 registry 格式存储。
- --sign-by:使用指定- FINGERPRINT的 GPG 密钥签名镜像。
- -t, --tag:应用到构建镜像的标签- name。
- --target:设置要构建的目标构建阶段。
- --timestamp:将创建的时间戳设置为指定的 epoch 秒,以允许确定性构建,默认为当前时间。
这些选项可以灵活地应对多种构建需求,包括针对特定平台的构建、环境变量设置、构建上下文管理、镜像签名等。使用 --save-image 选项,Sealos 可以自动识别镜像列表(包括从镜像列表、Helm charts、manifests 中解析出的镜像)并保存为 registry 格式。
进程隔离模式 --isolation 支持 'oci' 和 'chroot' 两个参数。如果本地支持 OCI,可以选择 'oci' 模式;如果不支持 OCI,应该使用 'chroot' 模式。
--save-image 是 Sealos 构建命令的一个选项,这个选项的作用是在构建过程中自动查找并保存需要的镜像。在 Sealos 中,构建一个镜像可能涉及到其他依赖镜像。这些依赖镜像可能来自镜像列表、Helm charts 或 集群 manifests。当使用 --save-image 选项时,Sealos 将根据构建上下文,自动解析这些依赖并将其保存为 Docker Registry 格式。
例如,以下是一个使用 --save-image 选项的示例:
sealos build -t myapp:v1.0.0 -f Dockerfile .
在这个示例中,Sealos 将使用当前目录作为构建上下文,从 Dockerfile 文件中读取构建指令,并尝试构建出一个标记为 myapp:v1.0.0 的镜像。同时,Sealos 将解析 Dockerfile 文件中所有 FROM 指令引用的基础镜像,并将这些镜像保存下来。这些镜像将以 Docker Registry 的格式保存,可以被直接推送到 Docker Registry 中。
如果你的构建上下文中还包含了 Helm charts 或 集群manifests,Sealos 也会解析这些文件中引用的镜像,并将这些镜像一并保存。
总的来说,--save-image 选项为 Sealos 的构建过程提供了一种自动处理依赖镜像的方式,大大提高了构建镜像的便捷性和效率。
下面有一些详细的示例:
通过 Sealos build 命令,可以基于多种指令文件构建 OCI 镜像,为sealos提供所需的镜像。这个过程包括处理 Dockerfile 或其他指令文件中的各种指令,如 FROM、RUN、ADD 等,以及处理镜像层次、镜像标签等。构建过程也包括拉取基础镜像、运行命令、保存结果等步骤。每一个步骤都可以通过上述的选项进行详细的控制和定制,以满足不同的构建需求。
以上就是 sealos build 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。