No Dockerfile, faço upload de um arquivo de configuração do curl, que preciso editar um pouco, aqui está uma estrutura de exemplo:
client:
...
server:
applicationConnectors:
- type: http
port: 8989
# for security reasons bind to localhost
bindHost: localhost
requestLog:
appenders: []
adminConnectors:
- type: http
port: 8990
bindHost: localhost
Eu preciso editar os dois bindHost
parâmetros, seria desejável se eu pudesse passar seus valores como parâmetro durante docker build
, mas não encontrei nada na Internet ou na documentação.
Se eu entendi a pergunta corretamente, no seu comando Dockerfile, canalize seu curl para um sed:
Ou você pode editar seu arquivo após o download:
Você pode passar valores para seu Dockerfile com '--build-arg' e usar esse valor em uma
RUN sed
chamada, por exemplo, para injetar um parâmetro de endereço IP:E você constrói com:
Você também pode converter os argumentos de compilação em variáveis de ambiente de tempo de execução:
o que seria melhor se sua sintaxe de configuração pudesse realizar uma substituição de variáveis do ambiente (não é necessário executar
sed
).Mas isso torna a imagem um pouco concreta demais, você pode definir as variáveis de ambiente ao iniciar o contêiner (
docker run
com--env
,--env-list
) e usar esses valores para editar o arquivo de configuração on-the-fly em um script que é a entrada do contêiner point, a menos, é claro, que sua sintaxe de configuração (ou parâmetros de inicialização) possa fazer a substituição de envvar.