Docker: Laravel 8 mit PHP 8

Moinsen Leute! Laravel 8 mit PHP 8 auf einem nginx mit node 14 laufen lassen. Wer das benötigt, der sollte folgende docker config nutzen.

FROM php:8.0-fpm
 Arguments defined in docker-compose.yml
 ARG user
 ARG uid
 Install system dependencies
 RUN apt-get update && apt-get install -y \
     git \
     curl \
     libpng-dev \
     libonig-dev \
     libxml2-dev \
     zip \
     unzip
 Clear cache
 RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 Install PHP extensions
 RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
 Get latest Composer
 COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
 Create system user to run Composer and Artisan Commands
 RUN useradd -G www-data,root -u $uid -d /home/$user $user
 RUN mkdir -p /home/$user/.composer && \
     chown -R $user:$user /home/$user
 Install Nodejs
 RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
 RUN apt-get install -y nodejs
 Set working directory
 WORKDIR /var/www
 USER $user

Wer eine andere Node Version braucht, der schaut hier nach welche er braucht und kopiert den Link hier zur geeigneten Nodejs Distribution rein.

Und hier die Docker-compose.yml Datei.

version: "3.7"
 services:
 Laravel App
 app:
     build:
       args:
         user: martin
         uid: 1000
       context: ./
       dockerfile: Dockerfile
     image: laravel-app
     container_name: laravel-api-app
     restart: unless-stopped
     working_dir: /var/www/
     volumes:
       - ./:/var/www
     networks:
       - mynetwork
 #Nginx Service
   nginx:
     image: nginx:alpine
     container_name: laravel-api-nginx
     restart: unless-stopped
     ports:
       - 8000:80
     volumes:
       - ./:/var/www
       - ./nginx/conf.d:/etc/nginx/conf.d/
     networks:
       - mynetwork
   #Mysl Service
 networks:
   mynetwork:
     driver: bridge

Lege einen nginx Ordner und eine Datei conf an:

mkdir -p nginx/conf
server {
     listen 80;
     index index.php index.html;
     error_log  /var/log/nginx/error.log;
     access_log /var/log/nginx/access.log;
     root /var/www/application/public;
     location ~ .php$ {
         try_files $uri =404;
         fastcgi_split_path_info ^(.+.php)(/.+)$;
         fastcgi_pass app:9000;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         fastcgi_param PATH_INFO $fastcgi_path_info;
     }
     location / {
         try_files $uri $uri/ /index.php?$query_string;
         gzip_static on;
     }
 }

Hier kannst Du dir meine Docker-Compose YML ziehen und bauen. Du erhälst eine sehr geeignete Umgebung für eine Laravel, VueJS Applikation. Mit dabei sind: nginx, mysql, php 8, node, npm, vim , composer.

https://github.com/MikeLowrey/docker-compose-laravel-2021


Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


Sprechblassen mit HTML und CSS bauen

November 22, 2021

Es kommt immer mal wieder vor, dass man eine Sprechblase zum Beispiel in einer Kommentarbox bauen muss. Wie war das gleich nochmal?!? Man kann sich ja nicht immer alles merken und es gibt im Netzt auch nützliche Generatoren für diese Fälle. Für Sprechblasen könnte man zum Beispiel diesen hier nehmen: https://www.html-code-generator.com/css/speech-bubble-generator . Mit ein paar […]

Table colspan und rowspan Generator

November 21, 2021

Komplizierte Konstrukte mit Tabellen abzubilden war eigentlich eine Dispziplinzwischen den Jahr 2000 und 2003 herum. Immer wieder kommen aber bei Stackoverflow Fragen auf, wie man solche oder solche Tabellen darstellt. Statt auf das coole und moderne Grid System zurückzugreifen wird noch mit Tabellen gearbeitet. Wie auch immer. Wer sich den Horror mit colspans und rowspan […]

Eine bestehende Datenbank auf einem Docker laufen lassen

November 11, 2021

Stellt euch vor ihr bekommt die undankbare Aufgabe ein altes WordPress Projekt zu upgraden. Das Projekt hinkt bereits zwei Major Releases hinterher. Das bedeutet ihr könnt nicht einfach im Produktivsystem ein upgrade vollziehen. Ihr müsst euch das Produsystem auf eure lokale Entwicklungsumgebung kopieren. Dafür eignet sich Docker ganz gut. Heute gehe ich davon aus, dass […]

Ein Git reset wieder rückgängig machen

November 8, 2021

Stellt euch vor. Ihr habt ein commit gemacht und wollt diesen aber wieder zurücksetzen. Quasi ein Rollback um eins zurück. Das macht ihr mit git reset HEAD~1. Nun sagt ihr: Ähh, doch lieber nicht… Um das wieder rückgängig zu machen könnt ihr mit git reset –hard commit_id_des_letzten_HEAD den reset Commit wieder rückgängig machen und ihr […]

Zwischen den Git Commits springen

November 2, 2021

Allgemein kann man zwischen den einzelnen Git Branches springen. Aber wie sieht es aus, wenn man zwischen einzelnen Commits innerhalb einer Branch springen will? Ein Fall wäre, man arbeitet an einem Feature. Ist immer Feature Branche ausgecheckt und setzt während der Entwicklung kleinere Commits ab. Dann kommt die Stelle wo man sagt, ok ich muss […]

Switch between Git Commits

November 2, 2021

In general you can switch between the various Git Branches. But how it will look, if someone like to switch between the various Git Commits? On case would be. You working on a feature. You checked out to the feature-branch and writing your code. You made some smaller commits. Then you will come to the […]