Laradock als Laravel Entwicklungsumgebung
Mit Laradock einfach eine Laravel Entwicklungsumgebung starten
Docker Basics
Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker
Download und initiales Setup
git clone https://github.com/Laradock/laradock.git
cp env-example .env
mkdir ../laradock_www
Sollten bestimmte Port bereits belegt sein, können diese einfach in der .env Datei geändert werden.
z.B.:
APP_CODE_PATH_HOST=../laradock_www...
### NGINX #################################################
NGINX_HOST_HTTP_PORT=90
NGINX_HOST_HTTPS_PORT=444...
### PHP MY ADMIN ##########################################
# Accepted values: mariadb - mysql
PMA_DB_ENGINE=mariadb
# Credentials/Port:
PMA_USER=defaultPMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8082
sudo docker compose up -d nginx mariadb phpmyadmin redis workspace
Laravel download und anpassen
In den Container wechseln:
docker-compose exec workspace bash
Befehle im Container: Laravel downloaden und installieren
cd ..
composer create-project laravel/laravel www
cd www
chmod 777 -R ./storage
npm install npm
npm run dev
.env Datei im www-Ordner:
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
BROADCAST_DRIVER=redis
CACHE_DRIVER=redis
QUEUE_CONNECTION=sync
SESSION_DRIVER=redis
SESSION_LIFETIME=120
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
dann wieder in der workspace bash
composer require predis/predisphp artisan migrate
Verschiedene Sites in nginx
in der nginx-Konfig können verschiedene Ordner und deren Test-URL angelegt werden, dabei habe ich für jede Testseite folgendes Konfigfile angelegt:
Ordner: laradock/nginx/sites/
server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name DOMAINNAME.test;
root /var/www/FOLDER/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
Domainname und Folder müssen an dieser Stelle natürlich angepasst werden.
PHP 7.3 - Version ändern
Die PHP-Version kann durch Anpassen der .env Datei geändert werden. Im Anschluss muss php-fpm neu erstellt werden:
docker-compose build php-fpm
Workspace.sh
#bin bash!
cd /docker/laradock && docker-compose exec workspace bash
ENVOY PATH
PATH=$PATH:~/.composer/vendor/bin
{{percentage}} % positiv