Sto provando a creare un Dockerfile per una webapp che utilizza un database basato su file. Mi piacerebbe essere in grado di montare il file dall'host * Il file è nella radice dell'installazione completa del software, quindi non è davvero l'ideale per montare la directory completa.Come posso montare un file in un contenitore, che non è disponibile prima della prima esecuzione?
Un altro problema è che prima del primo utilizzo, il file di database non è ancora stato creato. Un utente per la prima volta non avrà un database, ma potrebbe farlo un altro utente. Non posso "montare" nulla durante una costruzione ** Credo.
Probabilmente potrebbe funzionare in questo modo:
- First/nuovo inizio database:
- Avviare il contenitore (senza mount).
- La webapp crea un database.
- arresto del contenitore
- partenze successive:
- Avviare il contenitore con una
-v
per montare il file
- Avviare il contenitore con una
Sarebbe meglio se questo inizio extra/fermare isn 'necessario per un utente. Anche se lo è, sto ancora cercando un modo per farlo in modo facile, possibilmente con 2 'metodi' di avviarlo (forse posso definire una cosa di primo avvio nella docker-compose così come un metodo 'normale'?).
Come posso farlo in modo semplicissimo, in modo che sia chiaro per gli utenti la prima volta?
* Il motivo è che è possibile copiare il Dockerfile e il file di database come backup e essere attivi con solo questi 2 elementi.
** How to mount host volumes into docker containers in Dockerfile during build
Riguardo al voto di chiusura: Docker è uno strumento di programmazione legittimo? Non sto provando a montare un disco fisso o ad usare del software, sto cercando di creare un buon Dockerfile in modo da poter distribuire il software. Mi sembra onesto? – Nanne
È possibile specificare il percorso del file DB?Se è così, puoi montare una dir che contiene o conterrà il file DB e (1) se il file esiste, la webapp lo userà, o (2) se il file non esiste, la webapp (all'interno del contenitore) lo creerà e sarà disponibile per le prossime esecuzioni. Ha senso? –
buon punto, l'ho provato e non ha funzionato, ho dimenticato di aggiungere, mi dispiace. Il file db si trova nella radice del percorso di installazione del software. Modificherò la domanda :) – Nanne