1
00:00:00,610 --> 00:00:04,520
A meno che non si parli di come risolveremo alcuni problemi con la versione

2
00:00:04,520 --> 00:00:10,790
di produzione del nostro contenitore utilizzando un processo di compilazione in più fasi utilizzando un processo in più fasi, possiamo utilizzare diverse immagini

3
00:00:10,790 --> 00:00:11,500
di base.

4
00:00:11,690 --> 00:00:17,480
Possiamo avere una certa quantità di configurazione o codice che viene eseguito per creare

5
00:00:17,480 --> 00:00:22,640
la nostra applicazione e quindi copiare il risultato in quello reale.

6
00:00:22,640 --> 00:00:27,160
Quindi iniziamo a mettere insieme il nostro file di finestra mobile per metterlo in pratica.

7
00:00:27,220 --> 00:00:28,280
Stiamo per iniziare con OPM.

8
00:00:28,280 --> 00:00:34,370
Il mio editor di codice e poi all'interno della mia directory di progetto root ho intenzione di creare

9
00:00:34,430 --> 00:00:40,420
un nuovo file chiamato file docker in modo che all'interno di qui avremo due sezioni distinte.

10
00:00:40,480 --> 00:00:45,190
In primo luogo scriveremo la sezione che installerà tutte le nostre dipendenze ed

11
00:00:45,220 --> 00:00:48,270
eseguirà il comando di esecuzione di NPM.

12
00:00:48,330 --> 00:00:53,190
Ora la configurazione che useremo per il primo blocco o la fase di costruzione di Candis è un sacco

13
00:00:53,190 --> 00:00:55,500
di configurazioni che abbiamo già esaminato più volte.

14
00:00:55,500 --> 00:00:57,360
Quindi percorrilo piuttosto velocemente.

15
00:00:57,400 --> 00:01:06,660
Beh, per prima cosa dite dal nodo Alpine e poi ho intenzione di taggare questa fase con un nome che posso taggare dicendo

16
00:01:06,720 --> 00:01:07,420
come.

17
00:01:07,440 --> 00:01:12,620
E poi fornendo il nome di questa fase o di questa fase, quindi chiamerò questa cosa costruttore.

18
00:01:12,780 --> 00:01:21,240
Non è che sia un builder come questo, è un builder che significa che da questo comando e tutto ciò

19
00:01:21,240 --> 00:01:26,460
che sta sotto verrà chiamato il builder e l'unico scopo di questa fase

20
00:01:26,460 --> 00:01:30,730
è installare le dipendenze e costruire la loro applicazione.

21
00:01:30,930 --> 00:01:35,400
Poi, dopo, vedremo tutta la solita configurazione che ti abbiamo reso così lontano

22
00:01:35,400 --> 00:01:36,460
durante questo corso.

23
00:01:36,540 --> 00:01:44,940
Quindi specifica la mia directory di lavoro dell'app che copierò sul mio pacchetto non solo su file nella directory di

24
00:01:45,680 --> 00:01:48,640
app che eseguirò e installerò PM.

25
00:01:48,750 --> 00:01:51,310
Copierò su tutto il mio codice sorgente.

26
00:01:51,510 --> 00:01:56,400
Quindi, nota ora che stiamo facendo questa fase di costruzione e non ci preoccupiamo più di cambiare il

27
00:01:56,400 --> 00:01:57,270
nostro codice sorgente.

28
00:01:57,270 --> 00:02:00,210
Non dobbiamo più utilizzare l'intero sistema di volume.

29
00:02:00,210 --> 00:02:05,460
Quel sistema di volume che abbiamo implementato con la composizione di docker è stato necessario solo perché volevamo

30
00:02:05,460 --> 00:02:10,140
sviluppare la nostra applicazione e le nostre modifiche vengono immediatamente visualizzate nel contenitore quando eseguiamo il

31
00:02:10,140 --> 00:02:10,940
nostro codice.

32
00:02:10,950 --> 00:02:15,340
Qualsiasi vitamina di produzione non è più un problema perché non stiamo cambiando il nostro codice.

33
00:02:15,480 --> 00:02:22,340
Quindi possiamo solo fare una copia diretta di tutto il nostro codice sorgente direttamente nel contenitore dopo aver copiato

34
00:02:22,340 --> 00:02:30,290
tutto il nostro codice sorgente su di esso eseguiremo quindi con il comando Esegui NPM eseguito tutto bene ed è tutto quello che

35
00:02:30,290 --> 00:02:33,070
dobbiamo fare per il nostro passo costruttore.

36
00:02:33,410 --> 00:02:38,810
Quindi ancora una volta questo installerà le dipendenze eseguite su build e l'output di esso sarà

37
00:02:38,870 --> 00:02:40,280
la cartella di build.

38
00:02:40,280 --> 00:02:45,190
Ora una cosa che voglio sottolineare qui è che la cartella build verrà creata nella directory di lavoro.

39
00:02:45,440 --> 00:02:49,400
Quindi la cartella che io e te ci interessano veramente come la cartella con

40
00:02:49,400 --> 00:02:55,130
tutti i nostri asset di produzione che vogliamo servire al mondo esterno, il percorso verso quello all'interno del container sarà

41
00:02:55,760 --> 00:02:59,550
costruito con una barra che avrà tutte le cose che ci interessano di.

42
00:02:59,570 --> 00:03:04,340
Dunque, dammi la cartella che alla fine vorremmo copiare in qualche modo durante la

43
00:03:04,340 --> 00:03:05,820
nostra fase di esecuzione.

44
00:03:06,440 --> 00:03:10,940
OK, ora che abbiamo messo insieme la nostra fase di costruzione, scriveremo la configurazione

45
00:03:10,940 --> 00:03:13,170
per la fase di esecuzione effettiva.

46
00:03:13,220 --> 00:03:17,990
Quindi questa sarà la fase che dice che useremo il motore dell'immagine successiva in cui coperemo

47
00:03:17,990 --> 00:03:22,650
il risultato per poi ricostruirlo e poi in qualche modo avviare il motore x.

48
00:03:23,180 --> 00:03:29,480
Quindi per specificare l'inizio di una seconda fase tutto quello che dobbiamo fare è dire da e poi il nome

49
00:03:29,510 --> 00:03:36,620
della nostra immagine di base che è il motore X. in questo modo noterete che non abbiamo dovuto inserire alcuna terminologia

50
00:03:36,620 --> 00:03:42,320
o alcuna sintassi qui per specificare o dire che la fase iniziale che abbiamo qui si stava fermando

51
00:03:42,380 --> 00:03:46,850
semplicemente inserendo una seconda affermazione che sostanzialmente dice che il blocco precedente è completo.

52
00:03:46,850 --> 00:03:52,420
Non preoccuparti di questo, ogni singolo blocco o ogni singola faccia qui può avere solo una dichiarazione.

53
00:03:52,460 --> 00:03:57,170
Quindi puoi immaginare che le dichiarazioni da qui inserite siano in qualche modo terminanti ogni

54
00:03:57,170 --> 00:03:57,850
blocco successivo.

55
00:03:59,420 --> 00:04:05,960
Quindi, all'interno di qui, scriveremo il comando per copiare su quella cartella di build in questo nuovo

56
00:04:06,050 --> 00:04:10,000
tipo di contenitore del motore X che stiamo mettendo insieme.

57
00:04:10,070 --> 00:04:11,420
Quindi dirò copia.

58
00:04:11,660 --> 00:04:16,900
Dirò che vogliamo copiare qualcosa da una faccia diversa.

59
00:04:17,100 --> 00:04:21,970
Quindi metterò un trattino dal costruttore di equals come.

60
00:04:22,220 --> 00:04:27,830
Quindi sto dicendo che voglio copiare qualcosa da quell'altra fase su cui stiamo solo lavorando in

61
00:04:28,280 --> 00:04:31,800
questo caso, vogliamo copiare qualcosa dalla faccia del costruttore.

62
00:04:32,030 --> 00:04:34,820
Bene, quindi specifica la cartella che vogliamo copiare.

63
00:04:34,840 --> 00:04:39,470
Quindi dirò build di app slash perché di nuovo questa è la cartella che io e te ci importa davvero.

64
00:04:39,860 --> 00:04:43,640
E poi specificheremo dove vogliamo copiare la cosa.

65
00:04:43,660 --> 00:04:49,300
All'interno di questo tipo di contenitore del motore X che stiamo mettendo insieme così la cartella in cui vogliamo

66
00:04:49,300 --> 00:04:50,250
copiare questa roba.

67
00:04:50,260 --> 00:04:54,360
E questo è un po 'di configurazione attorno al motore X in particolare.

68
00:04:54,460 --> 00:05:02,020
Se tornate qui alla prossima documentazione sull'hub di Gawker e guardate quella sezione che dice che ospita alcuni contenuti semplici è

69
00:05:02,080 --> 00:05:06,820
piuttosto difficile da vedere all'interno del vostro, ma essenzialmente vedrete qui un perfetto

70
00:05:06,820 --> 00:05:08,870
esempio di questo proprio qui.

71
00:05:08,890 --> 00:05:15,880
Quindi, se vuoi pubblicare alcuni contenuti HD statici, inseriscilo in questa cartella del motore di condivisione degli utenti X

72
00:05:15,890 --> 00:05:16,920
HD m-L.

73
00:05:17,110 --> 00:05:24,090
Quindi qualsiasi cosa al suo interno verrà automaticamente pubblicata dal motore X. Quando si avvia

74
00:05:24,150 --> 00:05:32,370
Quindi diremo all'utente quanto non ci sia Ian lì, siamo solo noi il nostro motore di condivisione X HMO e andrò a classificare

75
00:05:32,370 --> 00:05:36,260
la mia barra laterale solo per poter vedere tutto questo.

76
00:05:37,820 --> 00:05:38,400
OK.

77
00:05:38,870 --> 00:05:41,060
E che ci crediate o no, è più o meno così.

78
00:05:41,150 --> 00:05:44,780
Per quanto tu sappia di aver detto qui oh sì, avvia il motore X ..

79
00:05:44,930 --> 00:05:49,520
Bene, si scopre che il comando predefinito del contenitore X del motore o l'immagine del motore X sta per

80
00:05:49,520 --> 00:05:51,130
avviare il motore X per noi.

81
00:05:51,200 --> 00:05:56,330
Quindi non dobbiamo eseguire in modo specifico alcunché al motore di avvio X quando avviiamo il contenitore del

82
00:05:56,330 --> 00:05:56,990
motore X.

83
00:05:56,990 --> 00:06:00,700
Ci occuperemo automaticamente del comando per noi.

84
00:06:00,830 --> 00:06:01,610
Quindi questo è praticamente tutto.

85
00:06:01,610 --> 00:06:06,520
Questo è il nostro file docker per l'ambiente di produzione della comunità degli sviluppatori.

86
00:06:06,530 --> 00:06:11,180
Ancora una volta la cosa veramente importante da capire qui è che abbiamo questo processo multi-step

87
00:06:11,210 --> 00:06:15,820
in cui stiamo creando un contenitore temporaneo qui o un set di livelli proprio qui.

88
00:06:16,010 --> 00:06:21,470
Eseguiamo un certo numero di comandi all'interno di quel set di livelli e quindi da quel set di

89
00:06:21,470 --> 00:06:26,090
livelli stiamo solo copiando solo il minimo necessario solo le cose che ci interessano.

90
00:06:26,090 --> 00:06:31,340
Quindi quando eseguiamo questo passaggio di copia qui stiamo essenzialmente scaricando tutto ciò che è stato

91
00:06:31,460 --> 00:06:37,240
creato mentre questo set di configurazione è stato eseguito, quindi non stiamo estrapolando nulla dal nodo Alpine image.

92
00:06:37,340 --> 00:06:40,420
Non stiamo estrapolando nessuno dei risultati dell'installazione.

93
00:06:40,460 --> 00:06:42,800
Non copiamo alcuno dei nostri codici sorgente.

94
00:06:42,830 --> 00:06:46,310
Tutto quello che stiamo ottenendo è il risultato di tale directory di build slash dell'app.

95
00:06:46,310 --> 00:06:47,090
Questo è tutto.

96
00:06:47,270 --> 00:06:50,990
Quindi la nostra immagine finale sarà relativamente piccola.

97
00:06:50,990 --> 00:06:56,070
Sarà essenzialmente comunque grande il motore X immagini e questo è praticamente tutto.

98
00:06:56,180 --> 00:06:57,170
Quindi è così.

99
00:06:57,170 --> 00:07:01,190
Ora facciamo una breve pausa qui per assicurarmi di salvare questo file e poi lo

100
00:07:01,190 --> 00:07:02,380
testeremo nella prossima sezione.

101
00:07:02,450 --> 00:07:04,290
Quindi pausa veloce e ci vediamo tra un minuto.
