环境的符号链接 Dockerfile

Symlinked Dockerfile for environments

我正在尝试找到一种优雅的方式来 split/maintain 我的 docker 我的环境配置。

这是我当前的目录树:

docker-compose.yml
docker-production.yml
dev/
    web/
        Dockerfile
        nginx.conf
        ...
    app/
        Dockerfile
    db/
        Dockerfile
prod/
    web/
        Dockerfile
    app/
        Dockerfile
    db/
        Dockerfile

如您所见,我的服务配置分别包含在每个环境的子目录中。

我的 docker-compose.yml 基于 dev/ 并且 docker-production.yml 扩展它并加载 prod/

为了更容易维护,我尝试在 prod 资源上使用符号链接指向从 dev 继承的文件,具体取决于我是否需要更改它们。这将允许我对整个服务目录或其中的某些文件进行符号链接。

prod/
    web/
        Dockerfile -> ../../dev/web/Dockerfile
        nginx.conf
    app/ -> ../dev/app
    db/ -> ../dev/db

除了符号链接的 Dockerfile 之外,一切似乎都工作正常:

Building web
ERROR: Cannot locate specified Dockerfile: Dockerfile

2 个问题:

正如我在评论中提到的,使用 boot2docker 意味着不支持符号链接。

预计会看到 Cannot locate specified Dockerfile: Dockerfile,特别是如果符号链接是在主机 (MacOs) 上创建并由 boot2docker 安装的(它不会很好地解释该符号链接)