如何将参数传递给 Docker 文件(特别是 FROM 指令)

How to pass argument to Docker file ( specifically to FROM instruction)

我正在尝试将 ubuntu 版本作为参数,值应该从 docker-compose 文件中获取。

撰写文件:

version: '2'
services:
 rahul:
  container_name: rahul_container
  build :
   context: .
   dockerfile: Dockerfile
   args:
    - uv=ubuntu:16.04
  image : rahul_image

Docker 文件:

FROM scratch
ARG uv
FROM $uv

输出:错误:服务 'rahul' 构建失败:解析引用时出错:“$uv”不是有效的 repository/tag

看起来值没有被替换。 尝试使用 FROM "${uv}" 但同样的错误

感谢@user2915097。 我创建了 shell 脚本,它将创建 docker 文件并放置我想要的参数...

#!/bin/bash

echo 
gcc_v=
echo $gcc_v
g_v=0
cat > Dockerfile <<EOL
FROM 
EOL
while IFS='' read -r line || [[ -n "$line" ]]; do
   g_v=$((g_v+1))
   if [[ ($g_v == 14) ]]; then
        echo "$line" >> 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
.
.
.