Giter Club home page Giter Club logo

nginx-php-fpm's Introduction

Build Integration Test Docker Image Size (latest by date) Docker Pulls

Nginx PHP-FPM Docker image

๐Ÿณ Full Docker image for Nginx PHP-FPM container created to run Laravel or any php based applications.

PHP Versions:

  • 8.3
  • 8.2
  • 8.1
  • 8.0
  • 7.4
  • 7.2

Specifications:

  • Composer
  • OpenSSL PHP Extension
  • XML PHP Extension
  • PDO PHP Extension
  • Rdkafka PHP Extension
  • Redis PHP Extension
  • Mbstring PHP Extension
  • PCNTL PHP Extension
  • ZIP PHP Extension
  • GD PHP Extension
  • BCMath PHP Extension
  • Memcached
  • Laravel Cron Job
  • Laravel Schedule
  • Supervisord
  • Nodejs
  • NPM

Simple docker-compose usage:

version: '3'
services:
    app:
        image: jkaninda/nginx-php-fpm:8.2
        container_name: my-app
        restart: unless-stopped 
        user: www-data # Optional - for production usage    
        volumes:
        #Project root
            - ./:/var/www/html
        ports:
           - "80:80"
        networks:
            - default #if you're using networks between containers

Laravel artisan command usage:

CLI

docker-compose exec  app bash
docker exec -it app bash

Advanced Nignx-php-fpm:

docker-compose.yml

version: '3'
services:
    app:
        image: jkaninda/nginx-php-fpm
        container_name: nginx-fpm
        restart: unless-stopped 
        ports:
           - "80:80"    
        volumes:
        #Project root
            - ./:/var/www/html
            - ~/.ssh:/root/.ssh # If you use private CVS
             #./php.ini:/usr/local/etc/php/conf.d/php.ini # Optional, your custom php init file
        environment:
           - APP_ENV=development # Optional, or production
           - LARAVEL_PROCS_NUMBER=2 # Optional, Laravel queue:work process number
           #- CLIENT_MAX_BODY_SIZE=20M # Optional
           #- DOMAIN=example.com # Optional
           - DOCUMENT_ROOT=/var/www/html #Optional
 

Default web root:

/var/www/html

Docker run

 docker-compose up -d

Build from base

Dockerfile

FROM jkaninda/nginx-php-fpm:8.3
# Copy laravel project files
COPY . /var/www/html
# Storage Volume
VOLUME /var/www/html/storage

WORKDIR /var/www/html

# Custom cache invalidation / optional
#ARG CACHEBUST=1
# composer install / Optional
#RUN composer install
# Fix permissions
RUN chown -R www-data:www-data /var/www/html

USER www-data

Nginx custom config:

Enable custom nginx config files

/var/www/html/conf/nginx/nginx.conf

/var/www/html/conf/nginx/nginx-site.conf

Supervisord

Add more supervisor process in

/etc/supervisor/conf.d/

In case you want to execute and maintain a task or process with supervisor.

Find below an example with Apache Kafka, when you want to maintain a consumer process.

Example:

[program:kafkaconsume-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan kafka:consumer
autostart=true
autorestart=true
numprocs=1
user=www-data
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/kafka.log

Storage permision issue

 docker-compose exec php-fpm /bin/bash 
chown -R www-data:www-data /var/www/html/

chmod -R 775 /var/www/html/storage

P.S. please give a star if you like it ๐Ÿ˜‰

nginx-php-fpm's People

Contributors

jkaninda avatar extremtechniker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.