Ho le seguenti righe in un Dockerfile in cui voglio impostare un valore in un file di configurazione su un valore predefinito prima dell'avvio dell'applicazione alla fine e fornire facoltativamente l'impostazione utilizzando l'opzione -e
quando si avvia il contenitore.Passaggio da contenitore a file
io sto cercando di fare questo usando Docker ENV
commando
ENV CONFIG_VALUE default_value
RUN sed -i 's/CONFIG_VALUE/'"$CONFIG_VALUE"'/g' CONFIG_FILE
CMD command_to_start_app
ho la config_value stringa in modo esplicito nel file CONFIG_FILE e il valore predefinito dalla Dockerfile viene correttamente sostituito. Tuttavia, quando eseguo il contenitore con l'aggiunta di -e CONFIG_VALUE=100
, la sostituzione non viene eseguita, viene mantenuto il valore predefinito impostato nel Dockerfile.
Quando faccio
docker exec -i -t container_name bash
e echo $CONFIG_VALUE
all'interno del contenitore della variabile di ambiente contiene il valore desiderato 100.
Grazie, per incidenza il tuo esempio mi ha aiutato a "scappare" la variabile di ambiente per sed correttamente (escludendo la parte con ""). – sebkraemer