Je commence à étudier le développement d'applications Web à l'aide de Laradoc.
AWS et Laravel, docker, docker-compose Environ un mois après avoir commencé mes études J'ai l'habitude d'utiliser Docker / Doker Compose / AWS, donc j'aimerais le déployer avec Laradoc, je vais donc le laisser pour ma propre étude. (Au 4 novembre 2020)
Les sites auxquels j'ai fait référence sont les suivants.
https://laraweb.net/tutorial/6578/ https://noumenon-th.net/programming/2019/06/16/laradock/
Le livre de référence est «Construction de réseau et de serveur à partir de la 3e édition révisée d'Amazon Web Services».
J'ai étudié les connaissances de base de docker et docker-compose dans le cours udemy suivant.
https://www.udemy.com/course/aidocker/
Je remercie les auteurs ci-dessus de m'avoir apporté diverses connaissances.
Faisons-le maintenant
Déployez une application Web Laravel accessible de n'importe où sur AWS. A l'origine, je pense que Laradoc est créé localement, une application Web est développée et elle est clonée git. Tout est fait sur AWS.
Ubuntu:18.04 PHP : 7.3 mysql : 5.4 Docker : 19.03.13 Docker-compose : 1.17.1
Créons dans la région de Tokyo
Créez un VPC avec un sous-réseau public. Si vous souhaitez créer un sous-réseau privé, créez un VPC avec les sous-réseaux publics et privés ci-dessous. À ce stade, le bloc d'adresse CIDR IPv4 est 10.0.0.0/16 Définissons-le sur Ipv4 10.0.0.0/24 du sous-réseau public.
VPC
Sélectionnez EC2 dans la console et cliquez sur Lancer l'instance
Sélectionnez Ubuntu 18.04 Sélectionnez t2.micro à l'étape 2
Étape 3 Sélectionnez le VPC créé précédemment dans les paramètres détaillés de l'instance. Activer également l'adresse IP publique attribuée automatiquement de désactivé.
Étape 6 Le port HTTP 80 étant utilisé dans le paramètre du groupe de sécurité, ajoutez-le en ajoutant une règle.
Cliquez sur Démarrer à l'étape 7. Téléchargez la paire de clés (mykey.pem) pour la connexion SSH.
Pendant ce temps, authentifions mykey.pem.
Accédez au dossier de téléchargement et exécutez la commande suivante Ensuite, l'authentification changera.
chmod 400 mykey.pem
Les détails peuvent être trouvés sur la page de certification aws.
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html
Après un certain temps, l'instance sera en cours d'exécution, cliquez donc sur le tableau de bord EC2 ⇒ instance en cours d'exécution ⇒ cliquez sur l'ID d'instance créée
Cliquez sur la connexion en haut à droite
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/7ee3781a-a5f4-5ff4-9569-335b7732ceee.png)
Si vous souhaitez établir une connexion SSH, vous pouvez le faire en bas (cliquez sur la commande copiée).
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/a55ba871-2aef-0b68-f858-2baf4e43cde4.png)
Ouvrez le terminal
Accédez au répertoire contenant mykey.pem (cd)
Je viens de le copier sur AWS
```ssh ~~~```
Collez dans le terminal. Entrer
Ensuite, placez-le dans l'EC2 créé précédemment.
ensuite,
```yes```Entrer
C'est la fin du démarrage d'EC2.
# Installez Docker, Git, Docker-compose dans EC2
~~~
ubuntu@ip-10-0-0-205:~$ sudo su
root@ip-10-0-0-205:/home/ubuntu#
~~~
Travaillez en racine ci-dessous
Tapons la commande ci-dessous
Mettez à jour apt-get et installez git
```apt-get update```
```apt-get install git```
Installer docker et 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
Sortez de la racine avec
# Git clone Laradoc.
https://laradock.io/
~~~
git clone https://github.com/Laradock/laradock.git
~~~
Assurez-vous qu'il est cloné avec git avec ls.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/9278a506-1ba4-d41c-d552-5c5b2fa8a4bb.png)
```$ cd laradock```Comme
#### **`$ cp env-example .env`**
```env
Pour le moment, PHP = 7,3
Lançons-le avec mysql.
Courir.
docker-compose up -d nginx mysql
Ensuite, démarrez le docker de nginx mysql.
Attendez environ 10 minutes. Détendons-nous en regardant sur Youtube.
# Entrez dans le conteneur de l'espace de travail.
Après avoir installé docker, exécutez la commande suivante et
Travaillons dans l'espace de travail.
docker-compose exec --user=laradock workspace bash
Dans l'espace de travail, démarrez docker-compose.
Cela vous mènera à `` `` var / www $ '' ``.
Parce qu'il y a un dossier laradock
```$ cd laradoock```
Modifiez le fichier .env en tant que.
#### **`$ cp env-example .env`**
```env
Faisons le
Ajoutez ce qui suit à `` .env```
#### **`vi .Exécutez env et ajoutez ce qui suit.`**
```Exécutez env et ajoutez ce qui suit.
DB_HOST=mysql DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret
## Créer une application Web avec Laravel
Cette fois, l'exemple de nom d'application est SampleProject.
laradock@e00afef1d36e:/var/www$ composer create-project laravel/laravel SampleProject "5.5.*"
Ensuite, vous pouvez créer un exemple de projet.
var/www --- laradock |_ SampleProject
Il sera configuré comme.
Entrez SampleProject et modifiez .env.
DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret
Définissez DB_HOST sur mysql.
Ensuite, modifiez .env dans Laradock comme suit et sélectionnez l'application laravel pour démarrer.
Si vous n'écrivez pas ici, il ne sera pas reconnu.
APP_CODE_PATH_HOST=../SampleProject
Pour le moment, les réglages sont terminés.
Accédez au dossier laradoc et redémarrez docker-compose pour charger vos modifications.
docker-compose up -d nginx mysql phpmyadmin
Ce sera le dernier dans peu de temps.
## Affichage de l'écran initial Laravel
Copiez le DNS public Ipv4 EC2 et
Collez-le dans la barre d'URL de votre navigateur. (L'URL peut être corrigée avec Elastic IP, mais cette fois, ce ne sera pas fait.)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/afad51fc-f102-9652-77f7-9f691c7a38d5.png)
Tu peux y aller. Je suis sceptique, vous pouvez donc vérifier si cela fonctionne sur votre iPhone pour voir s'il est global au lieu de local.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129576/b2d4e000-6e69-ae1e-150a-6f408b03dc61.png)
# Précautions lors du redémarrage de l'EC2
1) Redémarrez docker-compose chaque fois que vous redémarrez EC2.
Il semble qu'il redémarrera lorsque EC2 sera arrêté, donc
Puisque vous devez démarrer docker-compose chaque fois que vous démarrez EC2
Exécutez la commande suivante.
sudo su cd laradock/ docker-compose up -d nginx mysql phpmyadmin
2) Lorsque EC2 est arrêté, l'adresse Ip a changé, donc
Corrigeons le problème avec Elastic IP.
3) Après avoir changé le fichier Laradock
```docker-compose up -d mysql phpmyadmin```
Faisons le.
Bien entendu, le fichier à modifier est Sample Project.
# Impressions et avenir
Je pensais que ce serait très pratique de lancer avec EC2, et je serais heureux si je pouvais le déployer.
Cependant, le démarrage de Docker-compose après le redémarrage d'EC2,
Quand j'ai lancé EC2, je pensais que c'était un problème de mettre git ou Docker / Docker-compose.
À partir de maintenant, j'étudierai la redondance EC2, ECS (Fargate) et CI / CD en tant que contenus avancés.
J'espère que cela vous sera utile.
c'est tout
Recommended Posts