Sail中文文档:一个开发环境快速部署工具-08-Docker


08-Docker

Sail可以被认为是Docker工具链的包装器,它专门用来管理开发环境。
它以元数据和标签的形式将大部分状态存储在Docker守护程序中。

不可变性

Sail鼓励以易于共享和迭代的方式明确描述您的开发环境的工作流程。
如果要对环境进行更改,就应修改hat或项目的Dockerfile。

定义项目开发环境

项目可以通过一个.sail/Dockerfile配置文件来定义开发环境,如果在项目中没有找到.sail/Dockerfile,那么就会使用codercom/ubuntu-dev作为基础镜像。

在自定义项目环境时,dev容器必须是codercom/ubuntu-dev的祖先才能拥有正确的依赖关系设置。

构建项目的镜像时,将会把项目的根目录作为构建的根目录,实际上是调用了下面的构建命 令:

docker build -f $project_root/<org>/<repo>/.sail/Dockerfile $project_root/<org>/<repo>

容器权限

本地的当前用户将映射到开发环境中名为user的用户。这意味着容器内的文件跟您在本地环境具有相同的权限。
Sail在容器内使用user账户,不是root,因为:

  • root账户对许多工具不太友好。
  • 大多数开发人员习惯于非root用户和使用sudo

容器的命名

在Docker中容器被命名为<org>_<project>格式,但是在Sail中是<org>/project

网络

为了尽量让您有本地开发的环境体验,Sail尽可能使用docker宿主机网络。这就是说,如果你在Sail中的网络服务绑定到了8080端口,那么在你本地的浏览器中可以直接访问127.0.0.1:8080

在Mac上,Docker不支持使用宿主机网络,所以Sail在Mac上的宿主网络不好使。Sail计划在未来的版本中解决这个问题。

Dockerfile 最佳实践

Dockerfile最佳实践,你可以参考如何正确构建和编写项目以及Dockerfiles。


文章作者: 枫山别院
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 枫山别院 !
  目录