2017-03-22 14 views
0

引数としてubuntuのバージョンを作成しようとしていますが、値がdocker-composeファイルから取得する必要があります。Dockerファイル(特にFROM命令)に引数を渡す方法

コン-ファイル:

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 

出力:ERROR:エラー解析参照:サービス 'ラーフルは、' ビルドに失敗しました "$のUVを" 有効ではありませんリポジトリ/タグ

値が置き換えられないようです。 FROM "$ {uv}"で試行しましたが、同じエラー

+0

Dockerfileを作成するスクリプトは、 'FROM'で必要なものを書くことができますが、そのポイントは何ですか? – user2915097

+0

環境変数は[FROM命令ではサポートされていません](https://docs.docker.com/engine/reference/builder/#environment-replacement)ので、おそらくARG変数はどちらでもありません。 –

答えて

1

今日はできません。問題Allow using ENV or ARG in FROM #18119は、2015年11月20日以降のご要望にお応えします。

+0

リンク先を教えてくれてありがとうございました... –

+1

[リリースv17.05.0-ce-rc1](https://github.com/moby/moby/releases/tag/v17.05.0- ce-rc1) –

0

ありがとう@ user2915097。ドッキングウィンドウのファイルを作成し、私が望んでいたの引数を配置します I作成したシェルスクリプト...

#!/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 
. 
. 
. 
関連する問題