我正在尝试将ubuntu版本作为参数,而值应该来自docker-compose文件。
撰写文件:
version: '2'
services:
rahul:
container_name: rahul_container
build :
context: .
dockerfile: Dockerfile
args:
- uv=ubuntu:16.04
image : rahul_image
Dockerfile:
FROM scratch
ARG uv
FROM $uv
输出:错误:服务'rahul'无法构建:解析引用时出错:“$ uv”不是有效的存储库/标记
看起来价值没有被取代。 尝试使用FROM“$ {uv}”但同样的错误
答案 0 :(得分:1)
今天不可能。问题Allow using ENV or ARG in FROM
#18119解决了您自2015年11月20日起的需求。今天它已经开放。
答案 1 :(得分:0)
感谢@ user2915097。 我创建了shell脚本,它将创建docker文件并放置我想要的参数......
#!/bin/bash
echo $1
gcc_v=$2
echo $gcc_v
g_v=0
cat > Dockerfile <<EOL
FROM $1
EOL
while IFS='' read -r line || [[ -n "$line" ]]; do
g_v=$((g_v+1))
if [[ ($g_v == 14) ]]; then
echo "$line$2" >> Dockerfile
else
echo "$line" >> Dockerfile
fi
done < "docker_gcc"
docker build -t mygccapp .
$ ./tesh.sh ubuntu.16.04 6.3.0
输出: Dockerfile
FROM ubuntu:16.04
.
.
.