pka*_*mol 4 docker dockerfile docker-compose
我想通过docker-compose使用我的私钥克隆私人git仓库的映像来构建。
组成大致如下:
myservice:
build:
context: .
args:
RSA: ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
上面的方法不起作用,以下情况也不起作用:
myservice:
build:
context: .
args:
RSA: $(cat ~/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)
docker build命令可以正常工作,但是形式为
docker build --build-args RSA=$(cat ~/.ssh/id_rsa) -t myservice:latest
Run Code Online (Sandbox Code Playgroud)
您可以对docker-compose build使用相同的语法:
docker-compose build --build-args RSA=$(cat ~/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)
不幸的是,您不能在build up或start时使用build-args选项。因此,您需要先构建然后使用该--no-build选项运行
在构建所有服务时可行的一种方法是将upSSH 密钥数据作为环境变量传递,如下所示:
env RSA=$(cat ~/.ssh/id_rsa) docker-compose build
Run Code Online (Sandbox Code Playgroud)
然后在撰写文件中设置构建参数,如下所示:
myservice:
build:
context: .
args:
RSA: |-
${RSA}
Run Code Online (Sandbox Code Playgroud)