From d0101a66e0f5ca1ca294f015531ccc0376026399 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sat, 7 Jun 2025 12:39:07 +0200 Subject: [PATCH] better scripts --- Makefile | 38 ++++++++++++++++++++++++++++++++++++++ README.md | 6 ++++-- docker-compose.yaml | 4 +++- images/.env | 7 +++++++ images/Laravel_Dockerfile | 8 ++++++++ images/init_laravel.sh | 11 +++++++++++ 6 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 Makefile create mode 100644 images/.env create mode 100644 images/Laravel_Dockerfile create mode 100644 images/init_laravel.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..daf821c --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +CURRENT_DIR=$(shell basename $(PWD)) +CURRENT_DIR_LC=$(shell echo $(CURRENT_DIR) | tr A-Z a-z) +DOCKER_CONTAINER_NAME=$(CURRENT_DIR_LC)-laravel-1 +DOCKER_CMD=docker exec -it $(DOCKER_CONTAINER_NAME) + +# Launch the container detached +all: + docker compose up -d + +# Launch the container +run: + docker compose up + +# Stop the container +stop: + docker compose down + +# Stop the container and wipe the database +down: + docker compose down -v + + + + +# These tasks need the docker container to be running + +exec_container: + $(DOCKER_CMD) bash + +seed: + $(DOCKER_CMD) php artisan db:seed --class=$(CLASS) + +migrate: + $(DOCKER_CMD) php artisan migrate + +init_breeze: + $(DOCKER_CMD) composer require laravel/breeze --dev + $(DOCKER_CMD) php artisan breeze:install --dark blade \ No newline at end of file diff --git a/README.md b/README.md index b437b5d..709ca7f 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,13 @@ Pour lancer les conteneurs : ```sh -docker compose up +make run ``` Les données de la base de données persistent dans le volume docker `laravel_db_volume` -Les fichiers Laravel sont ensuite disponibles dans le dossier `laravel` +Les fichiers Laravel sont ensuite disponibles dans le dossier `laravel`. + +Si vous venez de créer le dossier laravel, supprimer le fichier .env et relancer les contenaurs. Le site est ensuite accessible à l'adresse suivante : `http://localhost:8080` \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index ab0a3f4..c1b7947 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,7 +12,9 @@ services: - laravel_db_volume:/var/lib/mysql laravel: - image: bitnami/laravel + build: + context: images + dockerfile: Laravel_Dockerfile ports: - "8080:8000" environment: diff --git a/images/.env b/images/.env new file mode 100644 index 0000000..2922e33 --- /dev/null +++ b/images/.env @@ -0,0 +1,7 @@ +DB_CONNECTION=mariadb +DB_HOST=mariadb +DB_PORT=3306 +DB_DATABASE=laravel_db +DB_USERNAME=laravel_user +DB_PASSWORD=super_strong_password +APP_KEY="" \ No newline at end of file diff --git a/images/Laravel_Dockerfile b/images/Laravel_Dockerfile new file mode 100644 index 0000000..339e443 --- /dev/null +++ b/images/Laravel_Dockerfile @@ -0,0 +1,8 @@ +FROM bitnami/laravel + +COPY init_laravel.sh /init/init_laravel.sh +COPY .env /init/.env + +RUN chmod +x /init/init_laravel.sh + +CMD bash /init/init_laravel.sh \ No newline at end of file diff --git a/images/init_laravel.sh b/images/init_laravel.sh new file mode 100644 index 0000000..398a543 --- /dev/null +++ b/images/init_laravel.sh @@ -0,0 +1,11 @@ +#!/bin/sh +composer install + +# Create .env if it does not exist +if ! [ -e ".env" ] ; then + cp /init/.env . + php artisan key:generate +fi + +php artisan migrate --force +php artisan serve --host=0.0.0.0 --port=8000 \ No newline at end of file