Dockerfile に次の RUN コマンドを記述したいのですが、docker は新しい行を保持しません。
RUN echo "[repo] \
name = YUM Repository \
baseurl = https://example.com/packages/ \
enabled = 1 \
gpgcheck = 0" > /etc/yum.repos.d/Repo.repoxyz
\
各行の末尾で新しい行がエスケープされることはわかっています。しかし、新しい行を保持したまま複数の行を記述する方法はありますか?
ベストアンサー1
では、「ANSI-C 引用符」と呼ばれるものを使用できます$'...'
。もともとはキシュ93特徴しかし、現在ではbash、zsh、mksh、FreeBSD shそしてビジーボックスの灰(ただし、ENABLE_ASH_BASH_COMPAT でコンパイルされている場合のみ)。
としてRUNは/bin/sh
デフォルトでシェルとして使用しますまず SHELL 命令を使用して bash などに切り替える必要があります。
コマンドは で開始し$'
、 で終了し'
、\n\
改行には を使用します。例:
SHELL ["/bin/bash", "-c"]
RUN echo $'[repo] \n\
name = YUM Repository \n\
baseurl = https://example.com/packages/ \n\
enabled = 1 \n\
gpgcheck = 0' > /etc/yum.repos.d/Repo.repoxyz