Ich fange an, die Entwicklung von Web-Apps mit Laradoc zu studieren.
AWS und Laravel, Docker, Docker-Compose Ungefähr einen Monat nach Beginn meines Studiums Ich bin es gewohnt, Docker / Doker Compose / AWS zu verwenden, daher möchte ich es mit Laradoc bereitstellen, damit ich es für mein eigenes Studium belassen kann. (Stand 4. November 2020)
Die Sites, auf die ich mich bezog, sind wie folgt.
https://laraweb.net/tutorial/6578/ https://noumenon-th.net/programming/2019/06/16/laradock/
Das Nachschlagewerk lautet "Netzwerk- und Serverkonstruktion von Amazon Web Services Basics Revised 3rd Edition".
Im folgenden udemy-Kurs habe ich die Grundkenntnisse von Docker und Docker-Compose studiert.
https://www.udemy.com/course/aidocker/
Ich bin den oben genannten Autoren dankbar, dass sie mir verschiedene Kenntnisse vermittelt haben.
Lass es uns jetzt machen
Stellen Sie eine Laravel-Webanwendung bereit, auf die von überall in AWS aus zugegriffen werden kann. Ursprünglich denke ich, dass Laradoc lokal erstellt, eine Webanwendung entwickelt und git geklont wird. Es ist alles auf AWS erledigt.
Ubuntu:18.04 PHP : 7.3 mysql : 5.4 Docker : 19.03.13 Docker-compose : 1.17.1
Lassen Sie uns in der Region Tokio erstellen
Erstellen Sie eine VPC mit einem öffentlichen Subnetz. Wenn Sie ein privates Subnetz erstellen möchten, erstellen Sie eine VPC mit den folgenden öffentlichen und privaten Subnetzen. Zu diesem Zeitpunkt ist der IPv4-CIDR-Block 10.0.0.0/16 Stellen wir es auf Ipv4 10.0.0.0/24 des öffentlichen Subnetzes ein.
VPC
Wählen Sie EC2 in der Konsole aus und klicken Sie auf Instanz starten
Wählen Sie Ubuntu 18.04 Wählen Sie in Schritt 2 t2.micro aus
Schritt 3 Wählen Sie die zuvor in den Detaileinstellungen der Instanz erstellte VPC aus. Aktivieren Sie auch die automatisch zugewiesene öffentliche IP von deaktiviert.
Schritt 6 Da der HTTP 80-Port in der Sicherheitsgruppeneinstellung verwendet wird, fügen Sie ihn durch Hinzufügen einer Regel hinzu.
Klicken Sie in Schritt 7 auf Start. Laden Sie das Schlüsselpaar (mykey.pem) für die SSH-Verbindung herunter.
Lassen Sie uns in dieser Zeit mykey.pem authentifizieren.
Wechseln Sie in den Download-Ordner und führen Sie den folgenden Befehl aus Dann ändert sich die Authentifizierung.
chmod 400 mykey.pem
Details finden Sie auf der aws-Zertifizierungsseite.
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html
Nach einer Weile wird die Instanz ausgeführt. Klicken Sie also auf das EC2-Dashboard. ⇒ Instanz ausführen. ⇒ Klicken Sie auf die erstellte Instanz-ID
Klicken Sie oben rechts auf die Verbindung
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/7ee3781a-a5f4-5ff4-9569-335b7732ceee.png)
Wenn Sie eine SSH-Verbindung herstellen möchten, können Sie dies unten tun (klicken Sie auf den kopierten Befehl).
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/a55ba871-2aef-0b68-f858-2baf4e43cde4.png)
Öffnen Sie das Terminal
Wechseln Sie in das Verzeichnis mit mykey.pem (cd)
Ich habe es gerade auf AWS kopiert
```ssh ~~~```
In das Terminal einfügen. Eingeben
Dann legen Sie es in die zuvor erstellte EC2.
danach,
```yes```Eingeben
Dies ist das Ende des EC2-Starts.
# Installieren Sie Docker, Git, Docker-Compose in EC2
~~~
ubuntu@ip-10-0-0-205:~$ sudo su
root@ip-10-0-0-205:/home/ubuntu#
~~~
Arbeite in der Wurzel unten
Geben Sie den folgenden Befehl ein
Aktualisieren Sie apt-get und installieren Sie git
```apt-get update```
```apt-get install git```
Installieren Sie Docker und Docker-Compose
~~~
$ apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ apt-key fingerprint 0EBFCD88
$ add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ apt-get install docker-ce docker-ce-cli containerd.io
$ apt install docker-compose
~~~
exit
Raus aus der Wurzel mit
# Git-Klon Laradoc.
https://laradock.io/
~~~
git clone https://github.com/Laradock/laradock.git
~~~
Stellen Sie sicher, dass es mit ls geklont ist.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/9278a506-1ba4-d41c-d552-5c5b2fa8a4bb.png)
```$ cd laradock```Wie
#### **`$ cp env-example .env`**
```env
Derzeit ist PHP = 7,3
Lassen Sie es uns mit MySQL ausführen.
Lauf.
docker-compose up -d nginx mysql
Dann starten Sie den Docker von Nginx MySQL.
Warten Sie ca. 10 Minuten. Lassen Sie uns entspannen, während Sie auf Youtube schauen.
# Geben Sie den Arbeitsbereichscontainer ein.
Führen Sie nach der Installation von Docker den folgenden Befehl aus und
Lassen Sie uns im Arbeitsbereich arbeiten.
docker-compose exec --user=laradock workspace bash
Starten Sie im Arbeitsbereich Docker-Compose.
Dies bringt Sie zu `` `var / www $` ``.
Weil es einen Laradock-Ordner gibt
```$ cd laradoock```
Bearbeiten Sie die .env-Datei als.
#### **`$ cp env-example .env`**
```env
Machen wir das
Fügen Sie Folgendes zu `` `.env``` hinzu
#### **`vi .Führen Sie env aus und fügen Sie Folgendes hinzu.`**
```Führen Sie env aus und fügen Sie Folgendes hinzu.
DB_HOST=mysql DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret
## Erstellen einer Web-App mit Laravel
Diesmal lautet der Name der Beispiel-App SampleProject.
laradock@e00afef1d36e:/var/www$ composer create-project laravel/laravel SampleProject "5.5.*"
Anschließend können Sie ein Beispielprojekt erstellen.
var/www --- laradock |_ SampleProject
Es wird konfiguriert als.
Geben Sie SampleProject ein und bearbeiten Sie .env.
DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret
Setzen Sie DB_HOST auf mysql.
Bearbeiten Sie dann .env in Laradock wie folgt und wählen Sie die zu startende Laravel-App aus.
Wenn Sie hier nicht schreiben, wird es nicht erkannt.
APP_CODE_PATH_HOST=../SampleProject
Die Einstellungen sind vorerst abgeschlossen.
Gehen Sie zum Laradoc-Ordner und starten Sie Docker-Compose neu, um Ihre Änderungen zu laden.
docker-compose up -d nginx mysql phpmyadmin
Es wird das letzte Mal sein.
## Laravel Startbildschirm
Kopieren Sie das öffentliche EC2-IPv4-DNS und
Fügen Sie es in die URL-Leiste Ihres Browsers ein. (Die URL kann mit Elastic IP festgelegt werden, diesmal jedoch nicht.)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/afad51fc-f102-9652-77f7-9f691c7a38d5.png)
Du kannst gehen. Ich bin skeptisch, also können Sie überprüfen, ob es auf Ihrem iPhone funktioniert, um festzustellen, ob es global statt lokal ist.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/b2d4e000-6e69-ae1e-150a-6f408b03dc61.png)
# Vorsichtsmaßnahmen beim Neustart von EC2
1) Starten Sie Docker-Compose jedes Mal neu, wenn Sie EC2 neu starten.
Es scheint, dass es neu gestartet wird, wenn EC2 gestoppt wird
Da Sie Docker-Compose jedes Mal starten müssen, wenn Sie EC2 starten,
Führen Sie den folgenden Befehl aus.
sudo su cd laradock/ docker-compose up -d nginx mysql phpmyadmin
2) Wenn EC2 gestoppt ist, hat sich die IP-Adresse geändert
Lassen Sie es uns mit Elastic IP beheben.
3) Nach dem Ändern der Laradock-Datei
```docker-compose up -d mysql phpmyadmin```
Machen wir das.
Die zu bearbeitende Datei ist natürlich Beispielprojekt.
# Eindrücke und die Zukunft
Ich dachte, es wäre sehr praktisch, mit EC2 zu starten, und ich würde mich freuen, wenn ich es bereitstellen könnte.
Wenn Sie Docker-compose jedoch nach dem Neustart von EC2 starten,
Als ich EC2 startete, dachte ich, es sei mühsam, Git oder Docker / Docker-Compose einzubauen.
Von nun an werde ich EC2-Redundanz, ECS (Fargate) und CI / CD als fortgeschrittene Inhalte studieren.
Ich hoffe es wird dir hilfreich sein.
das ist alles
Recommended Posts