Utilizzando la finestra mobile, è possibile creare immagini basate su altre immagini in modo molto gradevole. Ad esempio, puoi creare un'immagine Java-jdk7 (basata sull'ultimo Ubuntu LTS), e sulla base di ciò creare immagini elastic-search e tomcat7 (che hanno entrambi bisogno di java).Come gestire le dipendenze delle immagini della finestra mobile (manutenzione)
Quindi, se non codici nei miei immagini, io alla fine con la seguente (estratto di docker images
):
╔══════════════════════╦════════╦══════════════╗
║ REPOSITORY ║ TAG ║ ID ║
╠══════════════════════╬════════╬══════════════╣
║ ubuntu ║ 12.04 ║ 8dbd9e392a96 ║
║ quintenk/jdk7-oracle ║ latest ║ 8928245086f4 ║
║ quintenk/tomcat7 ║ latest ║ 995cdb2cbfa8 ║
║ quintenk/elastics ║ latest ║ 123abc456ef2 ║
╚══════════════════════╩════════╩══════════════╝
Ora per la domanda. Come/dovrei mantenere questa dipendenza? Come eseguo l'immagine di mantenimento 1 e le immagini dipendenti?
- Se aggiorno la mia immagine jdk (
apt-get upgrade
per esempio), suppongo di non danneggiare le immagini dipendenti? Tuttavia, suppongo anche che l'albero delle dipendenze non sia come ci si aspetterebbe più. [UPDATE: Ho riprodotto questo, quindi vedi la mia risposta qui sotto] - Se 1 è corretto, c'è un modo in cui posso avere il flag delle immagini dipendenti come obsoleto, e (si spera) farli ricostruire da soli?
Oppure è la strada da percorrere per contrassegnare i contenitori con un numero di versione e rigenerare e ridistribuire manualmente tutte le dipendenze con i tag numero di versione aumentato? Ciò significherebbe che i Dockerfiles avrebbero bisogno di essere modificati per un aggiornamento.
AGGIORNAMENTO: Ho trovato la seguente immagine sul sito di docker nel loro presentation. Tuttavia, non sono abbastanza sicuro dei passaggi su come farlo (specialmente con le dipendenze su altre immagini come ho descritto).
http://docs.docker.com/docker-hub/builds/#repository-links la soluzione desiderata? Ricostruisce tutte le immagini dipendenti se le modifiche vengono apportate alle immagini di base. –
@WeiChing infatti - questa sarebbe la nuova risposta. Certo, questa è una brutta cosa senza test automatici – qkrijger