Например, команда выпуска самоподписанного сертификата
использует конфиг в одну строку через разделитель новой строки:
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
см. аргумент
-config
Хочется в мой Dockerfile поместить похожую инструкцию, которая многострочный текст передаст как один из аргументов в вызываемую команду.
Copy-paste вызывает ошибку
/bin/sh: syntax error: unexpected "("
DockerfileRUN openssl req -x509 \
-newkey rsa:2048 -nodes -sha256 \
-out /etc/cert/localhost.crt \
-keyout /etc/cert/localhost.key \
-subj '/CN=localhost' \
-extensions EXT \
-config < ( \
printf '[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth')
В самых свежих версиях builder'а появился Heredoc синтакс, но мне желательно, чтобы работало и на старых версиях Docker.
Как из одной строки с символами
\n
передать распакованный текст аргументом в команду в RUN ?