Zusammenfassung des Docker-Verständnisses für Anfänger Until ~ Bis zur Bereitstellung eines Docker-Containers auf einer EC2-Instanz ~

Einführung

Nachdem ich endlich angefangen habe, Docker zu lernen, fasse ich mein Verständnis zusammen.

Was ich getan habe

Laden Sie den lokalen PC-Code über Github auf EC2 hoch

Melden Sie sich zunächst bei der EC2-Instanz an

Angenommen, Sie haben ein Schlüsselpaar in ~ / .ssh auf Ihrem lokalen PC

cd ~/.ssh
ssh -i "ec2-key.pem" ec2-user@<public-ip>

Erstellen Sie einen Schlüssel auf einer EC2-Instanz

ssh-keygen -t rsa

Sie werden nach einer Passphrase gefragt. Geben Sie daher gegebenenfalls die Passphrase ein. Wenn der Schlüssel korrekt erstellt wurde, werden zwei Dateien unter "~ / .ssh", "id_rsa" und "id_rsa.pub" erstellt. Da "id_rsa.pub" der öffentliche Schlüssel ist, wird dieser Inhalt im Bereitstellungsschlüssel von github registriert. Erstellen Sie eine Kopie dieses öffentlichen Schlüssels.

cat ~/.ssh/id_rsa.pub

Registrieren Sie den kopierten öffentlichen Schlüssel in Github

Sie können sich auf der Seite zur Registrierung von SSH-Schlüsseln registrieren. スクリーンショット 2020-10-24 12.42.23.png

Geben Sie als Titel einen Text ein, der den Inhalt des Schlüssels anzeigt, und fügen Sie den zuvor kopierten öffentlichen Schlüssel in den Schlüssel ein.

Bestätigen Sie von EC2, ob Sie sich registrieren konnten

ssh -T [email protected]

Klonen Sie das Github-Repository von EC2 und Sie sind fertig!

git clone [email protected]:yourname/yourrepo.git

スクリーンショット 2020-10-24 12.50.06.png

Und "Docker-Compose Up"!

Vorher tut es mir leid.

sudo service docker start

Und

docker-compose up

Das ist aus irgendeinem Grund ein Fehler. .. .. Warum ist "Fehler: Modul" Ausdruck "kann nicht gefunden werden? Ist es nicht richtig in package.json geschrieben? .. ..

Creating express-app ... done
Creating nginx-web   ... done
Attaching to express-app, nginx-web
express-app | node:internal/modules/cjs/loader:903
express-app |   throw err;
express-app |   ^
express-app | 
express-app | Error: Cannot find module 'express'
express-app | Require stack:
express-app | - /usr/src/app/index.js
express-app |     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:900:15)
express-app |     at Function.Module._load (node:internal/modules/cjs/loader:745:27)
express-app |     at Module.require (node:internal/modules/cjs/loader:972:19)
express-app |     at require (node:internal/modules/cjs/helpers:88:18)
express-app |     at Object.<anonymous> (/usr/src/app/index.js:1:17)
express-app |     at Module._compile (node:internal/modules/cjs/loader:1083:30)
express-app |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
express-app |     at Module.load (node:internal/modules/cjs/loader:948:32)
express-app |     at Function.Module._load (node:internal/modules/cjs/loader:789:14)
express-app |     at Function.executeUserEntryPoint [as runMain](node:internal/modules/run_main:72:12) {
express-app |   code: 'MODULE_NOT_FOUND',
express-app |   requireStack: [ '/usr/src/app/index.js' ]
express-app | }
nginx-web | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx-web | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx-web | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
nginx-web | 10-listen-on-ipv6-by-default.sh: Getting the checksum of /etc/nginx/conf.d/default.conf
express-app exited with code 1
nginx-web | 10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
nginx-web | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
nginx-web | /docker-entrypoint.sh: Configuration complete; ready for start up
nginx-web | 2020/10/24 02:42:13 [emerg] 1#1: host not found in upstream "app" in /etc/nginx/nginx.conf:18
nginx-web | nginx: [emerg] host not found in upstream "app" in /etc/nginx/nginx.conf:18
nginx-web exited with code 1

Aufgrund verschiedener Untersuchungen scheint etwas Schwieriges zu passieren.

Befolgte den Rat und reparierte docker-compose.yml.

docker-compose.yml


     volumes:
      - './app:/usr/src/app'
      - usr/src/app/node_modules #Nachtrag

Das war ziemlich gut!

Recommended Posts

Zusammenfassung des Docker-Verständnisses für Anfänger Until ~ Bis zur Bereitstellung eines Docker-Containers auf einer EC2-Instanz ~
Zusammenfassung des Docker-Verständnisses für Anfänger ④ ~ Bis die EC2-Instanz gestartet und der Docker installiert ist ~
Zusammenfassung des Docker-Verständnisses für Anfänger Until ~ Bis zur automatischen Bereitstellung des Docker-Containers für die EC2-Instanz mit CodeDeploy und CodePipeline ~
Zusammenfassung des Docker-Verständnisses für Anfänger do ~ Docker-Compose ~
Zusammenfassung des Docker-Verständnisses für Anfänger ③ ~ Bis die API mit nginx ~ als Proxy erstellt wird
Zusammenfassung des Docker-Verständnisses für Anfänger do ~ Docker-Run -p ~
Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
Bereitstellen von Laravel mit Docker auf EC2 unter AWS ① (EC2-Instanz erstellen)
[Java] Anfängerverständnis von Servlet-①
Objektorientierte Zusammenfassung von Anfängern (Java)
Zusammenfassung der Verfahren zum Entwickeln in einem Docker-Container mit VS-Code
[Microsoft] Führen Sie den Azure Pipelines (VSTS) -Agenten auf Docker oder Azure Container Instance aus