如何将parameter passing给Docker文件(具体到FROM指令)

我正在尝试使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'未能build立:错误parsing引用:“$ uv”不是一个有效的存储库/标记

看起来像价值不被取代。 从“$ {uv}”尝试,但同样的错误

今天是不可能的 问题允许在FROM #18119中使用ENV或ARG自2015年11月20日起满足您的需求。今天它已经开放。

感谢@ user2915097。 我已经创build了shell脚本,它将创builddocker文件并放置我想要的参数…

 #!/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 . . .