Estou executando um Dockerfile
, mas estou encontrando um problema quando atribuo uma variável para modificar /etc/fail2ban/jail.local
, com seu conteúdo de string-"PRIVATEIP".
Dockerfile
gera um erro e pára. Porque não tenho ideia de atribuir uma variável sed
para modificar o conteúdo da string em um arquivo específico.
RUN IP=$(cat /root/ip_variable) | sed -i -r "s/PRIVATEIP/${IP}/g" /etc/fail2ban/jail.local
---> Running in 1e78ef4318ab
Se houver algum método alternativo para lidar com isso, por favor me avise.
================================================== =========================
Adicione mais explicações para um método alternativo conforme abaixo em 11 de julho de 2018:
Eu adiciono algumas linhas de comando no Dockerfile. O objetivo é o mesmo de antes. Alternativamente, uso echo para escrever um script como abaixo. Mas, é estranho. Por que o caractere companheiro "/" depois de "s" em "sed" este comando é perdido? (Se houver algum método para adicionar destaque ou marcar o caractere dentro da saída do código, agradeço a você.) Se esse problema for resolvido, acho que posso fechar esse problema.
Step 64/73 : RUN echo "#!/bin/bash\nexport PRIVATEIP=$(cat /home/ip_variable)\nsed -i -r \"s/\bPRIVATEIP\b/\${PRIVATEIP}/g\" /etc/fail2ban/jail.local\nsed -i -r \"s/\bPRIVATEIP\b/\${PRIVATEIP}/g\" /etc/opendkim/TrustedHosts" > /home/start_script.sh
---> Running in bbff59f82475
Removing intermediate container bbff59f82475
---> 0068d9d600ff
Step 65/73 : RUN cat /home/ip_variable
---> Running in faeb4bb1a6ba
172.17.0.2/16
Removing intermediate container faeb4bb1a6ba
---> f6cc35fd01e5
Step 66/73 : RUN cat /home/start_script.sh
---> Running in 95a5ef3b7d23
#!/bin/bash
export PRIVATEIP=172.17.0.2/16
sed -i -r "sPRIVATEI/${PRIVATEIP}/g" /etc/fail2ban/jail.local
sed -i -r "sPRIVATEI/${PRIVATEIP}/g" /etc/opendkim/TrustedHosts
Removing intermediate container 95a5ef3b7d23
---> 6720e7c01efc
Step 67/73 : RUN chmod 755 /home/start_script.sh
---> Running in d8ab5e04a846
Removing intermediate container d8ab5e04a846
---> decb9e147db9
Step 68/73 : RUN sh /home/start_script.sh
---> Running in fc86000f9a2f
sed: -e expression #1, char 28: unknown option to `s'
sed: -e expression #1, char 28: unknown option to `s'
The command '/bin/sh -c sh /home/start_script.sh' returned a non-zero code: 1