Awesome Open Source
Awesome Open Source

LNMP Dockerfile

基于最新版CentOS官方镜像

包含php, java, nginx, mysql, reids, openssh server, go, crond, swoole, mongodb, adminMongo, node.js, phpmyadmin, phpredisadmin, xhprof, maven等服务。

简介

默认包含的版本

docker build的时候加入 --build-arg PHP_VER=php版本号 --build-arg JKD_VER=jdk版本号 --build-arg NGINX_VER=nginx版本号 --build-arg MYSQL_VER=mysql版本号 --build-arg REDIS_VER=reids版本号 --build-arg PHPMYADMIN_VER=phpmyadmin版本号 --build-arg REDIS_VER=redis密码(phpredisadmin同此) --build-arg ROOT_PASSWORD=ssh的root密码 --build-arg GO_VER=go语言版本 --build-arg NODE_VER=node.js语言版本 --build-arg MONGODB_VER=mongodb版本 --build-arg MAVEN_VER=maven版本 可以指定php,nginx,redis,phpmyadmin的安装版本, redis(phpredisadmin)和ssh的密码

获取镜像

  1. 远程获取镜像(推荐)

    $ git clone https://github.com/liufee/docker.git
    $ cd /path/to/docker
    $ docker pull registry.cn-hangzhou.aliyuncs.com/liufee/feehi 
    

    P.S虽然通过远程获取仓库获取镜像,但是还是建议clone本仓库到本地,因为docker run容器时-v挂载目录把配置文件映射进去

  2. 自行构建

    $ git clone https://github.com/liufee/docker.git
    $ cd /path/to/docker
    $ docker build -t liufee/feehi ./
    

    P.S

    自行构建,如果某一步骤失败, 再来一次。(因为你懂的原因,pecl.php.net,phpmyadmin.net,repo.mysql.com不稳定,造成下载某些扩展的时候失败退出。windows下使用ss代理切记勾选全局使用代理并重启cmd)

    强烈建议在执行cd /path/to/docker命令前,执行export http_proxy=http://ip:1087;export https_proxy=http://ip:1087;伟大的GFW,最好带个梯子。ip通常为127.0.0.1

运行容器

  $ docker run -h feehi -p 80:80 -p 23:22 -p 3306:3306 -p 6379:6379 -p 27017:27017 --name feehi -itd -v /path/to/docker/etc/nginx:/etc/nginx -v /path/to/docker/data/mysql:/data/mysql -v /path/to/docker/data/mongodb:/data/mongodb -v /path/to/docker/data/log:/var/log -v /path/to/default-nginx-website:/usr/local/nginx/html -v /your-work-directory:/your-work-directory liufee/feehi

P.S

若使用远程获取镜像请将liufee/feehi修改成registry.cn-hangzhou.aliyuncs.com/liufee/feehi 默认web目录为/usr/local/nginx/html,若需要配置多个vhost可以映射其他web目录进去.如: -v /path/to/sites:/www,然后在/etc/nginx/site.d中增加vhost配置

xhprof使用方法

    xhprof_enable();

    //你需要分析的代码
    
    $xhprof_data = xhprof_disable();
    include_once 'xhprof_lib/utils/xhprof_lib.php';//注xhprof_lib已经在/usr/local/php/lib/php中了
    include_once 'xhprof_lib/utils/xhprof_runs.php';
    
    $xhprof_runs = new XHProfRuns_Default();
    $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_test");
    //将run_id保存起来或者随代码一起输出

然后访问:http://nginx默认站点或域名/xhpfrof_html/index.php?run=run_id&source=xhprof_test查看结果

注意

  • 为了持久化保存数据,最好把宿主机某一目录挂载到容器内的/mysql。
  • 每次启动容器的时候,都会判断/mysql目录是否为空,为空则初始化mysql服务并修改root密码为docker run -e MYSQL_PASSWORD=xxx的值,若没有指定默认修改为123456, host='%',需要重置mysql直接清空/mysql目录重新启动容器即可。

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
docker (2,802
dockerfile (850
docker-image (381
docker-compose (378
lnmp (16

Find Open Source By Browsing 7,000 Topics Across 59 Categories