Dans cet article, je souhaite montrer à quel point Laraboot peut vous aider à créer rapidement et facilement un point de départ solide pour votre prochaine application Laravel, y compris les modèles, les routes CRUD et l’intégration Jetstream. Mieux encore, nous n’aurons pas à écrire de code.
Une fois l’application prête, nous utiliserons AWS ECR pour la déployer.
Initialiser et configurer
Conditions préalables
Assurez-vous au préalable que votre système répond aux exigences suivantes :
Installer Laraboot
Laraboot est installé via NPM. Découvrez le projet ici.
npm i -g @laraboot-io/cli
Créer un nouveau projet
laraboot new laraboot-demo-app --php-version=8 && cd laraboot-demo-app
Créer des tâches
Les tâches de build ne sont que des buildpacks personnalisés qui créent ou modifient un projet Laraboot.
Dans cet article, nous allons utiliser plusieurs tâches de build. Si vous vous sentez aventureux, vous pouvez plonger dans le répertoire des tâches de construction.
Ceux dont nous avons besoin sont :
Nous les ajoutons en utilisant laraboot cli
comme ça:
laraboot task add @core/laravel-foundation-provider --format=file
laraboot task add @core/laravel-config --format=file
laraboot task add @core/laravel-model --format=file
laraboot task add @core/laravel-starterkit-buildpack --format=file
Configurer
Créons d’abord notre modèle de données. Pour les besoins de ce post, imaginons que nous ayons deux modèles : Post et Comment. Nous les créerons en utilisant le model
commande comme ceci :
laraboot model add Post
√ Would you like to define your model now? (y/N) · true
√ Field name? · content
√ Field type? · varchar
√ Is this field unique? (y/N) · false
√ Is this field primary key? (y/N) · false
√ Would you like to add a new field? (y/N) · false
Model Post was added
laraboot model add Comment
√ Would you like to define your model now? (y/N) · true
√ Field name? · content
√ Field type? · varchar
√ Is this field unique? (y/N) · false
√ Is this field primary key? (y/N) · false
√ Would you like to add a new field? (y/N) · false
Model Comment was added
Configurez ensuite Jetstream. Ajoutez le contenu suivant à la fin de votre buildpack.yml
déposer.
# buildpack.yml
laravel-starterkit:
# Jetstream configuration
jetstream:
enabled: true
teams: true
stack: livewire
# Breeze configuration
breeze:
enabled: false
stack: inertia
Construire
Une fois configuré, lancez le processus de construction. Notez que le temps de construction dépend des capacités de votre système et si c’est la première fois que vous construisez un projet Laraboo. Les versions suivantes sont nettement plus rapides.
Si tout se passe comme prévu, vous devriez vous retrouver avec une image conforme à l’OCI nommée laraboot-demo-app
.
Aperçu
Voyons à quoi ressemble tout en exécutant notre application localement :
laraboot run --port=9000
Déployer sur AWS
Ensuite, nous allons utiliser AWS en tant que fournisseur de cloud et AWS ECR en tant que registre de services, mais vous pouvez déployer sur le CR de votre choix.
Créer un référentiel ECR à l’aide de l’AWS CLI
Vous pouvez ignorer cette partie si vous disposez déjà d’un référentiel AWS ECR.
Il existe deux manières (peut-être plus) de créer un référentiel ECR. Dans cet article, nous utiliserons aws-cli
.
# create an ecr repository
aws ecr create-repository
--repository-name laraboot-demo-app
--image-scanning-configuration scanOnPush=true
Cela affichera quelque chose comme ceci :
{
"repository": {
"repositoryArn": "arn:aws:ecr:us-east-1:xxxxxxxxxxxx:repository/laraboot-demo-app",
"registryId": "xxxxxxxxxxxx",
"repositoryName": "laraboot-demo-app",
"repositoryUri": "xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/laraboot-demo-app",
"createdAt": "2021-10-13T10:45:53-05:00",
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": true
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
}
Créer un référentiel ECR via la console AWS ECR
Vous pouvez obtenir la même chose en vous connectant à la console AWS et en vous dirigeant vers la gestion de la console du service ECR.
- Cliquez sur Créer un référentiel
- Remplissez les blancs dans le Réglages généraux panneau
- Cliquez sur Créer un référentiel
Déployer
Les étapes pour déployer notre image sont les suivantes :
- Connectez-vous à AWS ECR
- Taguez notre image
- Déployer
# replace xxxxxxxxxxxx with your AWS account id
# replace region if it's not us-east-1# sign in to the ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com## tag our image
docker tag laraboot-demo-app:latest xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/laraboot-demo-app:latest## push
docker push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/laraboot-demo-app:latest
Conclusion
A cette occasion, nous utilisons Laraboot pour mettre en place une nouvelle application Laravel sans avoir à écrire la moindre ligne de code. Cette application a été conteneurisée et déployée sur AWS ECR en quelques minutes.