Dockerfileの一部として、ビルド時にユーザーが(ARGとして)ドッカーコンテナに渡す変数を含むようにテキストファイル(ssh_config)を変更しようとしています。私DockerfileでRUNエコーコマンドに対するDockerの引数
私は(これはファイル全体ではありません)があります。
ARG key_name
RUN echo 'Host geoserver\n\
User user\n\
HostName 38.191.191.111\n\
IdentityFile /root/$key_name' >> /etc/ssh/ssh_config
これは、引数たキー名を収集し、その後、ssh_configのテキストファイルにテキストを追加します。次のように
この
が実行されます:私は書かれているかを確認するチェックした場合、key_nameは変数が解析されておらず、代わりにテキストとして書かれていdocker build --build-arg key_name=GC -t pyramid .
(そう、文字通りとして$ key_nameは) 。明らかに、私はそれをARGを介して渡された変数に置き換えたいと思います。
$key_file
の代わりに${key_file}
を使用しようとしましたが、テキストファイルに同じテキストが含まれていますが、中括弧が含まれています。
私の質問は、どのようにRUNエコーステートメント内でARG変数を正しく使用できるのですか?
Dockerfileで '$ {key_name}'(中括弧)を試しましたか? – Munchkin
私はありがとうございます、私はそれを私の質問に追加します –
あなたの 'ARG'はどこですか? 'FROM'の外側か内側? (はい、違いがあります)。さらに、 '' echo'から '' 'を削除しようとします。 – Munchkin