‫Tutto ok. Queste sono le risposte per l'incarico di creare il nostro primo Dockerfile. Se sono nella root
‫del nostro repository, che hai scaricato dall'inizio di questo corso, dovremmo
‫essere in grado di accedere al compito dockerfile 1. Se guardiamo lì, ho solo un file
‫che mi interessa davvero, e questo è il Dockerfile.
‫Presumibilmente, questa è una fonte che qualcuno ha dato a me, e sono un app che sta usando Nodo. js, e io non ne so molto,
‫quindi ho intenzione di modificare il Dockerfile.
‫OK.
‫la prima cosa che devo fare è che devo andare a prendere la mia immagine DA.
‫Se seguo le istruzioni dello sviluppatore, so che E so che ho bisogno di usare il nodo ufficiale. Lasciami andare a dare un'occhiata.
‫Destra. C'è il nodo ufficiale.
‫Ho bisogno della versione 6 su Alpine. Quindi c'è 6 alpino. Devo esporre la
‫Tutto ok. Quindi, 6-alpine. Sto esponendo 3000 qui perché è ciò su cui l'app è progettata per funzionare.
‫Ok. La prossima cosa porta 3000. Ma quando lo eseguo più tardi con la finestra mobile, devo ricordare
‫che dovrò usare il -p con la porta 80 andando alla porta 3000.
‫Tutto ok.
‫di usare un gestore di pacchetti per installare questa app, tini.
‫Questo ha bisogno Userò un comando run per quello.
‫Quindi ho intenzione di creare una directory. eseguire apk
‫Tutto ok. add,
‫Farò solo loro comandi di esecuzione separati. quindi eseguire mkdir. OK. Quindi ho bisogno di copiare in un singolo file sembra.
‫Quindi, potrei anche cambiare la directory di lavoro in quella directory che abbiamo appena creato.
‫Quindi app fonte utente WORKDIR. Questo mi farà risparmiare tempo dopo.
‫Posso fare un pacchetto json
‫di COPY pacchetto json. Tutto ok. Quindi ho bisogno di eseguire un comando di installazione. Sembra che sarà una corsa. comando per ripulire.
‫Questo dice di eseguire un altro
‫Tutto ok.
‫Bene, di solito quando si esegue un comando di pulizia, si desidera che esegua la stessa riga o la
‫stessa linea di esecuzione dell'installazione effettiva.
‫In questo modo rimuove tutto tutto nello stesso momento e ottieni solo un livello immagine.
‫Questo è il migliore per lo spazio dell'immagine.
‫Quindi, lo aggiungerò qui.
‫E quello che il doppio & sign, o la e commerciale come viene chiamato, fa qui è in realtà un condizionale.
‫Dice alla riga di comando su Linux che dice: "Ehi, se hai fatto il primo
‫e ha avuto successo, allora esegui il secondo comando. "Potresti anche vedere le persone a volte inserire
‫un punto e virgola, e anche quello va bene.
‫La differenza è che un punto e virgola non ha una dipendenza dal fatto che il primo comando abbia avuto o meno successo.
‫Gestisce solo il secondo indipendentemente.
‫Quindi mi piace la doppia e commerciale.
‫Tutto ok. Questo è un modo
‫Copiando altri file sembra. Se ho intenzione di copiare in tutto, farò solo a. semplice per farlo. Assicurati che ci sia uno spazio nel mezzo.
‫In pratica sta dicendo: 'Copia tutto dalla
‫mia directory corrente sull'host alla directory di lavoro corrente nell'immagine. ' OK.
‫
‫Sono giù per l'ultimo.
‫E questo sembra un po 'complicato.
‫Ho quattro diverse parti del comando che ho bisogno di eseguire lì.
‫Quindi con questo formato, ho bisogno di eseguire tini, quindi una virgola.
‫Quindi questo è in un formato JSON.
‫Questa particolare stanza di comando. -, nodo bin www.
‫E se ne fossi curioso, potrei sempre andare
‫al mio browser e fare docker run o docker build cmd.
‫E scommetto il tuo riferimento Dockerfile. E qui in
‫questa pagina, potrei andare al cmd. E parla della forma esatta. Se leggi qui, noterai effettivamente che esiste qualcosa chiamato form
‫di shell. E c'è anche
‫qualcosa che stanno citando su un punto di ingresso.
‫Ne parleremo più avanti nel corso in una sezione Dockerfile più avanzata.
‫Ma per ora, questo è buono.
‫Proviamo a costruirlo. build docker. Non mi interessa davvero come lo chiamo ora.
‫Sto solo provando a testare la build e di solito le mie build non funzionano la prima volta. Quindi, lo chiamerò
‫solo testnode. Ho intenzione di costruire questa directory.
‫OK.
‫Sembra che sia stato costruito correttamente.
‫Vediamo se riesci a eseguirlo.
‫davvero tenerlo dopo averlo testato, quindi lo farò.
‫Ho intenzione di fare un --rm perché non mi interessa
‫Non ho intenzione di chiamarlo.
‫Devo inserire una porta per aprire la porta. Vuole correre su 80 ma ascolta 3000. OK.
‫Questo è in realtà un messaggio normale che riceviamo da Tini,
‫all'interno di Alpine, quindi non mi preoccuperò troppo di ciò.
‫Andiamo a vedere se funziona.
‫Dolce. Vedremo i log lì.
‫OK.
‫Sembra che sia. grazie, capitano Picard.
‫Apprezzo l'applauso.
‫Apprezzo il supporto.
‫Grazie.
‫Tutto ok.
‫Controlla c fuori di lì. Ora dovrebbe essere in
‫cima alla mia lista di immagini.
‫Devo rinominarlo prima di inserirlo in Docker Hub.
‫Quindi, tag docker, e credo che il formato sia vecchio e nuovo. Si.
‫Quindi, testnode tag docker.
‫Lo chiamerò nodo test
‫del bretfisher.
‫E lo lascerò solo al più tardi.
‫Quindi, spinta docker, e questo. Tutto ciò di cui dobbiamo preoccuparci è il nome. Quindi, il nodo di
‫test di bretfisher push docker.
‫Tutto ok. Andiamo a Docker e guardiamo.
‫Eccoci, testando il nodo.
‫OK.
‫Cancellerò lo schermo e l'immagine della finestra mobile ls.
‫Ed è lì. Ho intenzione di rimuoverlo,
‫immagine docker rm test del bretfisher.
‫Tutto ok. Ora lo eseguirò, contenitore docker eseguirà --rm -p 80 3000 proprio
‫come prima.
‫Quindi, in realtà, lo chiamerò nodo test del bretfisher.
‫Questo dovrebbe scaricarlo ed eseguirlo.
‫Tutto ok.
‫Se torno indietro sul mio browser, localhost, eccolo. Posso colpire l'aggiornamento solo per essere sicuro.
‫Sì. Freddo.
‫