07-标签
Sail广泛的使用Docker标签来维护状态,并允许用户完全配置他们的项目环境。
配置标签
项目的根标签
如《项目》中所述,您可以使用project_root
标签来指定项目根的挂载目录。Sail默认的挂载目录是容器中的~/<repo>
。
例如:
LABEL project_root "~/go/src/"
将会挂载本地的$project_root/<org>/<repo>
目录到容器中的~/go/src/<repo>
。
Share 标签
Sail的share是一个你想跟容器分享的本地目录。项目或者是hat的Dockerfile中的share,将会把你指定的目录挂载到容器中的相应位置。
项目或者hat的Dockerfile可以使用如下形式的标签配置命令:
share.<share_name>="host_path:guest_path".
例如:如果你想跟容器共享本地的go模块缓存,你可以在项目或者hat的Dockerfile中添加如下命令:
LABEL share.go_mod="~/go/pkg/mod:~/go/pkg/mod"
以下情况推荐使用share:
- 系统级的缓存
- go模块缓存
- Yarn 缓存
- 用户的个性化配置
- VS Code配置
- SSH密钥
- gitconfig
- 工作数据
- 项目文件
- 数据分析结果
需要注意的是:share会破坏开发环境的可重复性和一致性。小心一些比较坑的share,例如~:~
。
State 标签
Sail使用以com.coder.sail
开头的Docker标签来管理CLI可能需要的状态。 这些标签仅在Sail CLI中需要,对用户配置无用。