‫Oke. Dit zijn de antwoorden voor de opdracht om onze eerste Dockerfile te maken. Als ik in de root
‫van onze repository zit, die je aan het begin van deze cursus hebt gedownload,
‫zouden we in staat moeten zijn om naar dockerfile-opdracht 1 te gaan. Als we daarin kijken, heb ik maar één
‫bestand waar ik echt om geef, en dat is de Dockerfile.
‫Vermoedelijk is dit een bron die iemand mij heeft gegeven, en het is een app-ontwikkelaar die Node gebruikt. js, en ik weet er niet echt
‫veel van, dus ik ga gewoon het Docker-bestand bewerken.
‫OKE.
‫Als ik de instructies van de ontwikkelaar volg, weet ik dat ik
‫eerst mijn FROM-afbeelding moet gaan halen. En ik weet dat ik de node official moet gebruiken. Laat me het opzoeken.
‫Rechts. Daar is de officiële knoop.
‫Ik heb versie 6 nodig die op Alpine draait. Dus er zijn 6 Alpine.
‫Oke. Dus 6-alpine.
‫OK. Het volgende ding... Ik moet poort 3000 vrijgeven.
‫Ik laat hier 3000 zien, want daarvoor is de app ontworpen.
‫Maar als ik het later met docker run uitvoer, moet ik onthouden dat ik de
‫-p moet gebruiken met poort 80 naar poort 3000.
‫Oke.
‫Deze moet een pakketbeheerder gebruiken om deze
‫app te installeren, tini. Ik gebruik daarvoor een run-commando.
‫Dan ga ik een map maken.
‫Oke.
‫Ik zal ze gewoon aparte run-commando's maken... voer apk add uit
‫en voer vervolgens mkdir uit.
‫OKE. Dan moet ik het in een enkel bestand kopiëren zoals het eruit ziet.
‫Dus ik kan net zo goed de werkdirectory wijzigen in die directory die we zojuist hebben gemaakt.
‫Dus WORKDIR gebruikersbron app. Dat scheelt me later tijd.
‫Ik kan een COPY-pakket json-pakket json
‫doen. Oke. Dan moet ik een installatiecommando uitvoeren. Het lijkt erop dat het een run wordt. Deze zegt dat je een ander commando
‫moet uitvoeren om op te ruimen.
‫Oke.
‫Welnu, meestal als u een opruimopdracht uitvoert, wilt u dat deze dezelfde regel of dezelfde uitvoeringsregel uitvoert als de
‫daadwerkelijke installatie.
‫Op die manier verwijdert het alles tegelijkertijd en krijg je maar één afbeeldingslaag.
‫Dit is het beste voor de beeldruimte.
‫Dus ik ga het hier toevoegen.
‫En wat het dubbele &-teken, of de ampersand zoals het wordt genoemd, hier doet, is dat het eigenlijk een voorwaarde is.
‫Het zegt tegen de opdrachtregel op Linux dat zegt: 'Hé, als je de eerste hebt gedaan en het is gelukt, voer dan de
‫tweede opdracht uit. '
‫Je ziet misschien ook dat mensen soms een puntkomma plaatsen, en dat is ook goed.
‫Het verschil is dat een puntkomma niet afhankelijk is van het al dan niet succesvol zijn van de eerste opdracht.
‫Het draait gewoon de tweede, ongeacht.
‫Dus ik hou van de dubbele ampersand.
‫Oke.
‫Het lijkt erop dat er nog meer bestanden worden gekopieerd. Als ik alles in ga kopiëren, doe ik gewoon een .. Dat is een gemakkelijke manier om het te doen.
‫Zorg ervoor dat er een spatie in het midden is.
‫Dat is eigenlijk
‫zeggen: 'Kopieer alles van mijn huidige directory op de host naar de huidige werkdirectory in de afbeelding. ' OKE.
‫Ik ben toe aan de laatste.
‫En deze ziet er een beetje lastig uit.
‫Ik heb vier verschillende delen van de opdracht die ik daar moet uitvoeren.
‫Dus met dit formaat moet ik tini uitvoeren en vervolgens een komma.
‫Dit is dus in JSON-formaat.
‫Deze specifieke opdracht strofe. --, knooppunt bin www.
‫En als ik daar nieuwsgierig naar was,
‫kon ik altijd naar mijn browser gaan en docker run of docker build cmd doen.
‫En ik wed dat je een Dockerfile-referentie hebt. En hier op
‫deze pagina zou ik naar de cmd kunnen gaan. En het gaat over de exacte vorm. Als je hier leest, zul je merken
‫dat er iets is dat een shell-vorm wordt genoemd. En er is ook iets dat ze
‫noemen over een toegangspunt.
‫We gaan daar later in de cursus over praten in een meer geavanceerde Dockerfile-sectie.
‫Maar voor nu is dit goed.
‫Laten we proberen het te bouwen. havenarbeider bouwen. Het maakt me niet zoveel uit hoe ik het nu noem.
‫Ik probeer gewoon de build te testen en meestal werken mijn builds niet de eerste keer. Dus ik
‫noem het gewoon testnode. Ik ga deze map bouwen.
‫OKE.
‫Het lijkt erop dat het correct is gebouwd.
‫Laten we eens kijken of je het kunt uitvoeren.
‫Ik ga een --rm doen omdat
‫het me niet kan schelen om het te houden nadat ik het heb getest, dus ik ga dat gewoon doen.
‫Ik hoef het niet te noemen.
‫Ik moet een poort plaatsen om de poort te openen. Hij wil op 80 draaien, maar luistert op 3000. OKE.
‫Dat is eigenlijk een normaal bericht dat we krijgen
‫van tini, binnen in Alpine, dus daar zal ik me niet al te veel zorgen over maken.
‫Laten we gaan kijken of het werkt.
‫Zoet. We zullen de logboeken daar zien.
‫OKE.
‫Het lijkt erop dat het..
‫dank u, kapitein Picard.
‫Ik waardeer het applaus.
‫Ik waardeer de steun.
‫Bedankt.
‫Oke.
‫Controle c daar weg. Nu zou het
‫bovenaan mijn lijst met afbeeldingen moeten staan.
‫Ik moet het hernoemen voordat ik het op Docker Hub zet.
‫Dus, docker-tag, en ik geloof dat het formaat oud en nieuw is. Ja.
‫Dus, docker-tag testnode.
‫Ik ga het
‫bretfisher testing node noemen.
‫En ik laat het maar op zijn laatst.
‫Dus, docker push, en dit. Het enige waar we ons zorgen over hoeven te maken, is de naam. Dus,
‫docker push bretfisher testknooppunt.
‫Oke. Laten we naar Docker gaan en kijken.
‫Daar gaan we, testknooppunt.
‫OKE.
‫Ik ga het scherm en de docker-afbeelding ls wissen.
‫En, het is er. Ik ga het verwijderen, docker image rm
‫bretfisher testing.
‫Oke. Nu ga ik het eigenlijk uitvoeren, docker container run --rm -p 80
‫3000, net als voorheen.
‫Dan ga ik het eigenlijk een bretfisher-testknooppunt noemen.
‫Dat zou het moeten downloaden en uitvoeren.
‫Oke.
‫Als ik terugga naar mijn browser, localhost, daar is het. Ik kan voor de zekerheid op vernieuwen drukken.
‫Ja. Koel.