我有下面的docker-compose文件
version: '3'
services:
node1:
build: node1
image: node1
container_name: node1
node2:
build: node2
image: node2
container_name: node2
我可以构建这两个映像,并使用单个命令启动它们docker-compose up -d --build
但是我想在构建中使用build-args。在compose范围之外的图像的原始构建脚本看起来像这样
#!/bin/sh
docker build \
--build-arg ADMIN_USERNNAME_1=weblogic \
--build-arg ADMIN_PASSWORD_1=weblogic1 \
--build-arg ADMIN_NAME_1=admin \
--build-arg ...
--build-arg ... \
-t test/foo .
这两个映像将使用相同名称但不同值的构建参数。而且,由于有许多构建参数,将它们存储在特定于组合服务的构建属性文件中会很方便。这在docker-compose中可能吗?
5条答案
按热度按时间xurqigkl1#
您可以使用构建命令docker-compose定义
args
。停靠文件示例:
停靠器合成文件:
./dir
包含Dockerfile,我使用以下命令进行构建:我已经看到:
我把我的堆栈:
现在我可以检查nginx容器内部,我的用户名和(加密的)密码在那里:
使用此方法,您可以将
build args
传递到docker-compose
堆栈。r7s23pms2#
在
Dockerfile
中:在
docker-compose.yml
文件中:您可以建立或增强您的服务:
z0qdvdin3#
正如Salek上面提到的,添加
context: .
会有所帮助。例如:
'
fiei3ece4#
Docker文件
Buildspec或CLI执行以下命令。
如果要在CLI中打印ACCOUNT_ID
注意:ARG应该在所有
FROM
语句的顶部,然后它将作为全局ARG工作。pwuypxnk5#
您可以直接在Docker-compose文件中指定参数:
查看完整示例:MWE
官方文件里有所有细节。