Utilizzo la finestra mobile-compose per lo sviluppo . Durante il processo, ho spesso bisogno di costruire 5 contenitori (1 per web-server e 4 per postgres, redis, mongo, ecc.). Il contenitore del server web è configurato per includere collegamenti per altri contenitori, ha le proprie vele ENV, volumi montati dalla macchina host di sviluppo.Costruisci contenitore con finestra mobile-componi, ma esegui/etc/bash con l'opzione -it più tardi?
Il problema è che non è necessario il contenitore Web per eseguire il server stesso. Prima di questo ho bisogno di eseguire /etc/bash
con le opzioni -it
all'interno del contenitore web dopo che tutti i contenitori dipendenti sono stati creati. Ecco perché, il mio dockerfile per il web-container termina con:
CMD /bin/true
Ovviamente, tale contenitore wont essere in esecuzione, quindi non posso utilizzare smth come
docker exec -it <CONTAINER ID> /bin/bash
di "entrare" ed eseguirlo node app.js
o qualche altro compito.
Un modo per creare un contenitore con compose come parte del file docker-compose.yml
, ma eseguire/etc/bash con l'opzione -it più tardi?
BTW, certamente posso avviare manualmente un web-contenitore separato con
docker run \
--link postgres
--link ...
-e "NODE_ENV=development" \
-e ... \
...
...
..
ma questo caso ho bisogno di aggiungere tutti i link, env vars, volumi, ecc come argumets ogni volta che vado a sviluppare un'app.
Puoi spiegare di più sulla tua custodia/flusso di lavoro? Sembra inutilmente complesso? – johnharris85