All Projects → huiyonghkw → Lnmp Docker

huiyonghkw / Lnmp Docker

Docker for LNMP (CentOS7 + Nginx + MariaDB + PHP7 + Redis + Supervisor + WebSocket + Cron)

Projects that are alternatives of or similar to Lnmp Docker

Lnmp
💻 🐳 🐘 🐬 🐧 🚀 Start Docker LNMP(LEMP) In less than 2 minutes Powered by Docker Compose. 让 PHP 开发者快速(一键)搭建基于容器技术(Docker、Kubernetes)的开发、测试、生产(CI/CD by Drone)环境.
Stars: ✭ 341 (+54.3%)
Mutual labels:  laravel, lnmp
Zhihu App
Laravel + Vue.js 开发知乎视频
Stars: ✭ 219 (-0.9%)
Mutual labels:  laravel
Nohttprxutils
🐠 本库是一款Android-Http标准协议网络通讯框架,基于RxJava+NoHttp封装。支持文件上传和断点续传、文件下载和断点下载、Http协议和Https协议队列网络请求、网络请求轮询。
Stars: ✭ 214 (-3.17%)
Mutual labels:  https
Lnmp
LEMP stack/LAMP stack/LNMP stack installation scripts for CentOS/Redhat Debian and Ubuntu
Stars: ✭ 2,488 (+1025.79%)
Mutual labels:  lnmp
Lasso
Lasso is a Laravel package created to make your deployments blazing fast.
Stars: ✭ 217 (-1.81%)
Mutual labels:  laravel
Laravel Terminator
A package to help you clean up your controllers in laravel
Stars: ✭ 217 (-1.81%)
Mutual labels:  laravel
Laravel Multisite
Multiple sites on one codebase
Stars: ✭ 214 (-3.17%)
Mutual labels:  laravel
Mongolid Laravel
Easy, powerful and ultrafast MongoDB ODM for Laravel.
Stars: ✭ 222 (+0.45%)
Mutual labels:  laravel
Confetti
Confetti is a web application framework with an expressive, elegant syntax. This repository contains configuration files and is intended as a template for your codebase. Download these configuration files and include them in your git repository.
Stars: ✭ 219 (-0.9%)
Mutual labels:  laravel
Laravel Analytics
A Laravel package to retrieve pageviews and other data from Google Analytics
Stars: ✭ 2,613 (+1082.35%)
Mutual labels:  laravel
Urlhub
URL shortener web application based on the Laravel PHP Framework.
Stars: ✭ 217 (-1.81%)
Mutual labels:  laravel
Laravelpackage.com
Documentation for LaravelPackage.com: Learn to create Laravel specific PHP packages from scratch, following this open documentation.
Stars: ✭ 214 (-3.17%)
Mutual labels:  laravel
Townhouse
A multi-tenant Laravel app for listing property rentals
Stars: ✭ 218 (-1.36%)
Mutual labels:  laravel
Laravel Slack Slash Command
Make a Laravel app respond to a slash command from Slack
Stars: ✭ 215 (-2.71%)
Mutual labels:  laravel
Laravel App Settings
Store settings in database with a manager UI for your Laravel app
Stars: ✭ 220 (-0.45%)
Mutual labels:  laravel
Laravel Download Link
A simple Laravel package for generating download links with options such as expire time, IP restrictions, etc.
Stars: ✭ 215 (-2.71%)
Mutual labels:  laravel
Laravel Comment
Just another comment system for your awesome Laravel project.
Stars: ✭ 217 (-1.81%)
Mutual labels:  laravel
Wink
A Laravel-based publishing platform
Stars: ✭ 2,598 (+1075.57%)
Mutual labels:  laravel
Sneaker
An easy way to send emails whenever an exception occurs on server.
Stars: ✭ 223 (+0.9%)
Mutual labels:  laravel
Onesignal
OneSignal notifications channel for Laravel
Stars: ✭ 222 (+0.45%)
Mutual labels:  laravel

LNMP Docker - 在国内快速构建LNMP容器环境

3分钟构建开发、测试、生产L(Alpine Linux ) + N(Nginx) + M(MariaDB) + P(PHP) Docker 容器应用环境,升级信息参考

Docker

主要特性

  • 基于PHP 7.1版本,构建干净、轻量级PHP依赖环境。
  • 基于Alpine Linux 最小化Linux环境加速构建镜像。 使用 阿里巴巴开源镜像站 在国内3分钟完成整个镜像构建。
  • 内置PHP Composer,支持PHP CLI/FPM两种运行模式。PHP CLI 适用于命令行、后台PHP服务。PHP FPM基于CLI基础镜像,独立安装FPM模块。Nginx容器与PHP-FPM采用Socket方式连接,提供PHP Web应用环境。
  • 提供PHP CLI模式独立运行模式参考:call-websocktphp-superviosrcall-websockt 是基于workman 的PHP Socket服务。php-supervior 实现基于Supervisor的队列服务。
  • 可独立配置容器运行时环境参数,支持容器运行日志、数据与宿主机分离,方便调试与维护。
  • 支持Nginx虚拟站点、SSL证书服务。配置参考Nginx中certconf.d目录文件。
  • 支持多个虚拟站点内部程序互通。
  • 使用Docker Compose 编排容器,支持在开发、测试、生产环境中快速完成服务器搭建任务。

安装Docker与Docker Compose

本项目基于CentOS 7构建,安装Docker环境参考官网。国内环境,推荐使用阿里云Docker Hub加速器服务。

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://muehonsf.mirror.aliyuncs.com"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

推荐Github官网安装Docker Compose。

$ curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

安装LNMP Docker

  1. 克隆Git仓库。需要提前安装好Git。

    $ git clone https://github.com/bravist/lnmp-docker && cd lnmp-docker
    
  2. 配置.env环境参数,一般无需修改默认参数。配置PHP_FPM_DOMAIN 支持Nginx容器虚拟主机互通,配置SUPERVISOR_DOMAIN 支持Supervisor容器项目互通。参考这里了解容器多个项目内部通信机制。

# 生成.env文件
$ cp .env.example .env
  1. [*] 配置定时任务容器环境参数。默认无定时任务,可以参考php-crond/crontabs/default.example开启定时任务。
   $ cd php-crond/crontabs/
   $ cp default.example default
  1. [*] 配置Supervisor后台进程处理任务。默认无后台进程处理,参考php-supervisor/supervisor/default.conf.example 配置多进程任务。

    $ cd php-supervisor/supervisor
    $ cp default.conf.example default.conf
    
  2. 配置Nginx虚拟站点。参考nginx/conf.d 目录下配置,复制一份新的站点配置文件,修改域名与主机目录。

    $ cd nginx/conf.d
    $ cp default.conf a.com.conf
    $ vi a.com.conf
    
    server {
        listen  80;
    
        server_name  a.com;
        root   /usr/share/nginx/html/a.com;
        index  index.html index.htm index.php;
    
        #access_log  /var/log/nginx/log/host.access.log  main;
    
        location / {
            try_files $uri $uri/ /index.php$is_args$query_string;
        }
    
        error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
    
        location ~ .*\.(js|css)?$
        {
            expires      2h;
        }
    
        location ~ /.well-known {
            allow all;
        }
    
        location ~ /\.
        {
            deny all;
        }
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    }
    
    

    要在本地主机上访问a.com,需要在hosts文件中添加域名指向。

  3. 使用Docker Compose 快速启动容器。

    $ docker-compose build && docker-compose up -d
    

其他说明

项目源码通过tianon/true 镜像挂载了主机当前项目文件目录: www,推荐在改目录下新建不同子目录,然后在Nginx配置虚拟站点指向到该目录。

项目提供一份在PHP CLI模式中运行PHP应用的参考call-websocket。可以运行Workman这样的WebSocket的应用。在安装的过程中,可以忽略在lnmp-call-websocket 容器错误。

在安装过程中,如遇到问题,可以直接提交ISSUE反馈问题。为减少疑惑,提供一下命令做帮助。

# 查看所有运行和者退出的容器
$ docker ps -a

# 删除停止的容器
$ docker rm -f contianer_name ...

# 快速停止与删除容器组
$ docker-compose down 

# 删除本地docker镜像
$ docker rmi -f image_name ....

# 清除所有已经停止运行的容器
$ docker container prune

所有的容器基于Alpine Linux ,默认使用sh shell,进入容器时使用该命令:docker exec -it container_name sh

$ docker exec -it lnmp-nginx sh

安装 ctop 工具可以帮助查看容器在主机的使用情况。

 $ ctop
 ctop - 15:36:35 CST      10 containers

   NAME                        CID                         CPU                         MEM                         NET RX/TX                   IO R/W                      PIDS
 ◉  lnmp-mariadb                bd3cecff945e                             0%                     179M / 7.64G        90K / 276K                  27M / 0B                    0
 ◉  lnmp-nginx                  f4452c868dcc                             0%                      8M / 7.64G         14M / 5M                    5M / 0B                     0
 ◉  lnmp-php-fpm                a68c55c28995                             0%                      72M / 7.64G        1M / 13M                    20M / 0B                    0
 ◉  lnmp-php-supervisor         15182399966b                             1%                     1.8G / 7.64G        92M / 145M                  26M / 0B                    0
 ◉  lnmp-redis                  279b2f995b2a                             0%                      8M / 7.64G         62M / 16M                   2M / 0B                     0
 ◉  lnmp-www                    09c684094c18                              -                           -             -                           -                           -  
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].