有很多针对docker的文章和文档,介绍了如何配置Web节点配置文件。然而,我发现在描述我如何继续包括我的数据库服务器,缓存,工作人员和消息队列服务之类的配置文件方面相对较轻。
如果我试图在源代码管理中使用我的Dockerfiles创建一个包罗万象的项目,我该如何构建事物呢?
不是一个详尽的清单,但是:
答案 0 :(得分:0)
您可以使用以下方式链接容器:
docker run --link other-continer:ALIAS -it this-container
此容器可以使用链接容器上的所有公开端口。 环境变量[ALIAS] _PORT_ [PORT] _TCP_ADDR和[ALIAS] _PORT_ [PORT] _TCP_PORT将告诉您连接到其他主机的位置。
这里没有好的答案我们的其他discussion是相关的。将它们放在各自的文件夹中,然后将它们放在任何地方。它们没有语义链接到项目的源。
您可以使用:
docker run -e VAR_NAME=value ...
您可以使用以下命令在构建时将源代码插入到docker容器中。
ADD http://url-to-your-source/ /folder/in/container
github.com/user/project/src/...
# Or each of these in their own github repo if you want to be super canonical
github.com/user/project/docker-files/base/Dockerfile
github.com/user/project/docker-files/web/Dockerfile
github.com/user/project/docker-files/db/Dockerfile
github.com/user/project/docker-files/worker/Dockerfile
github.com/user/project/fig.yml
你的fig.yml看起来像
base:
build: ./docker-files/base/
web:
build: ./docker-files/web/
command: Something
links:
- db
- worker
ports:
- "8000:8000"
db:
build: ./docker-files/db/
expose:
- "3306"
worker:
build: ./docker-files/worker/
expose:
- "9000"
Web节点中的入口点将是一个脚本,该脚本在启动Web服务器之前查找下面的环境变量并相应地设置配置文件。这应该在脚本中而不是在Dockerfile中完成,因为链接是在运行时而不是构建时创建的。
DB_PORT\_3306\_TCP_ADDR
DB_PORT\_3306\_TCP_PORT
WORKER_PORT\_9000\_TCP_ADDR
WORKER_PORT\_9000\_TCP_PORT
您应该使用以下命令将源代码插入Docker容器(如果您需要源代码),否则您也可以从某个地方提取构建的工件。
ADD https://api.github.com/repos/user/projects/tarball /tmp/src
为避免重复,请添加常见步骤,例如安装php或将源码拉入基础docker容器,然后在其他容器中使用from:base以使用已执行的步骤拉入图像。
然后你可以这样做:
fig build
fig start