Laradock瞎用用指南

博客目录

2019-06-04 16:32 +0800

2019-08-20 21:27 +0800

什么是Laradock

项目官网:https://laradock.io/(都9102年竟然没有强制HTTPS/HSTS)

Laradock是一套用来运行Laravel程序的docker容器集合。特色有:

  • 使用docker compose编写脚本,操作简单
  • 使用dotenv修改变量,随心调配
  • 可通过修改dotenv来换安装时使用的软件源(专门针对国内设置)
  • 容器种类丰富到爆

具体可用的容器有:

  • 数据库:所有品种的SQL、Redis、MongoDB、libkvdb(大误)
  • 数据库管理软件:PMA等多种
  • 缓存引擎:Redis、Memcached等
  • 服务器:NGINX、Apache2、Caddy(御三家)
  • 编译器:PHP-FPM或HHVM(crepl即将上线)
  • 消息、队列(没用过,不懂)
  • 海量豪华服务器工具:
    • HAProxy
    • Blackfire
    • NetData
    • Jenkins
    • Swoole
    • GitLab(然而穷逼根本无法运行)
    • JupyterHub和iPython
    • 等等等等等

可以说,有了Laradock,就没有任何别的需要动手安装了!(放屁,穷人用不起GitLab只能自己手动安装别的git服务然后做反代)

简单使用方法

  1. 部署你要的代码,参考的文件夹布局为

    + laradock
    + project-1
    + project-2
    \ ...
    
  2. 下载Laradock:

    git clone https://github.com/Laradock/laradock.git
    
  3. 安装docker:(注意装docker不能使用EPEL-6/7源)

    snap install docker docker-compose
    yum install docker docker-compose // EPEL-7 is bad for docker
    
  4. 进入Laradock文件夹,修改配置文件

    cd laradock && cp env-example .env && vi .env
    
  5. 修改代码的配置:

    • 数据库地址需要修改为对应的容器名,如

      DB_HOST=mariadb # was 127.0.0.1
      
    • 配置网络服务器文件,将对应的请求发给PHP-FPM或HHVM处理。如

      https://njujb.com {
        gzip
        tls admin@njujb.com
        root /var/www/njujb
        fadtcgi / php-fpm:9000 php {
          index index.php
        }
        rewrite {
          to {path} {path}/ /index.php?{query}
        }
      }
      
  6. 编译并启动所需要的容器

    docker-compose up -d mariadb caddy netdata...
    

注意事项

  1. 容器与宿主机需要相互访问时,需要查询IP地址:
    • 容器访问宿主机,需要通过ip addr show docker0获得地址,不同发行版对应地址不同;
    • 宿主机访问容器,需要暴露端口,然后直接127.0.0.1:port访问。
  2. 对于使用fadtcgi的服务器,服务端和fadtcgi必须使用相同的文档根目录。例如Caddy运行在宿主机,而php-fpm运行在虚拟容器中,那么网站的根目录在宿主机和虚拟容器中必须是完全一致的(如放在/var/www/your-site),否则就会出现无法访问文件的错误。
  3. 部分容器只提供了基本功能(如caddy容器只有一套busybox),所以如果需要进行复杂的自动部署(如hugo部署需要生成静态文件,但安装hugo需要go和libc++,busybox并不提供这些复杂的东西。当然直接运行一个hugo server然后反代也可以),建议把caddy运行在宿主机,通过宿主机执行自动部署代码。如果同时存在运行在容器中的PHP应用直接fadtcgi转发一下就可以了,宿主机根本没有安装PHP的必要。
评论功能因技术问题暂时关闭
Comments are disabled due to technical issues.
Alternative: mail to blog.doowzs[at]outlook.com