把 LaraDock 的 v2 版本修改了一下,换成国内镜像
话说最近不知道为何长三角地区科学上网的速度慢了好多,好多国外开源站点更新代码速度都让人无法忍受。
正遇到想整一下 docker 环境就顺便看了一下很早以前就有了的 Laradock/laradock 项目,已然更新到 v2 版本了,扩展性已经强大了许多。不过如果按照官方的方式,海外用是挺方便,国内的更新速度就比较糟心了。
So, 我改了个适配国内的版本:
https://github.com/nickfan/laradock
由于是仅针对国内用户加速的,估计发 PR 人也不会用,各位老司机有啥好提议直接 Fork 我的版本发 PR 给我,便宜我好了,哈哈
特性:#
- php composer 换成国内的源(phpcomposer)
- 已经加了常用的 composer 全局工具 (box/phpcs/envoy 等)
- npm 和 yarn 换成国内的源 (淘宝)
- nginx 的基础镜像 alpinelinux 换成国内源(中科大)
- 其他 ubuntu 镜像 换成国内源(阿里云)
提示:#
docker 本身的 Registry Mirrors 可以设置为 http://hub-mirror.c.163.com 加速镜像的下载,或者去注册个阿里云开发者账号登录后可以享用免费的阿里云镜像加速服务。
依赖:#
你本地已安装好 docker for mac /docker for windows 或者 docker toolbox (新版我没在 docker toolbox 下测试过,不过应该和工具无关),老司机略过。
安装使用#
- 参考
主要请参考官方的说明文档:
@appleboy 有翻译过中文版说明,这里直接链接一下:https://github.com/LaraDock/laradock/blob/...
- 下载
(假设你的 workspace 就是~/Code,你的各个项目都在~/Code/project1,project2 等等下面)
git clone https://github.com/nickfan/laradock.git ~/Code/laradock-nickfan
- 配置验证 auth.json
在开始使用前记得按 workspace/auth.json.example
复制并设置一下 workspace/auth.json
文件添加自己的 github 的 Personal Access Token 到配置的对应内容里
- 配置挂载路径
修改 docker-compose.yml 中关于 applications>volumes 中关于项目代码路径的映射关系:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
So 你 workspace 下的~/Code/project1 路径被映射成卷中的路径 /var/www/project1
- 配置 nginx 的站点设置
按 nginx/sites/sample.conf.example 创建 nginx/sites/project1.conf,nginx/sites/project2.conf 文件
修改一下具体的域名配置和路径设置,这里假设都是 laravel 的项目
server {
listen 80;
listen [::]:80;
server_name project1.dev;
root /var/www/project1/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
- 启动容器
首次会比较慢,需要下载镜像做初始化等等,后续的启动就比较快了
docker-compose up -d nginx mysql
本地的 80 端口 Docker 服务中的 nginx 要用,3306 端口 Docker 服务中的 mysql 要用,如果有进程占用了,先结束对应的进程再执行此命令,如果是 docker toolbox 因为不是本地 forward 所以不用担心 ip 绑定的的域名绑你 NAT 设备的 IP
本地绑定对应的项目域名到 /etc/hosts
127.0.0.1 project1.dev project2.dev
如果你是用的 Docker Toolbox (Virtualbox) 而不是 Native 的版本 (Docker for mac 或 Docker for Windows 其实是 hypervisor 轻量级的虚拟技术) 记得绑定的 ip 是你的 Docker 服务 NAT 设备的 IP
- 进入命令行
docker-compose exec --user=laradock workspace bash
- 关闭服务环境
docker-compose down
另外 Laradock 还支持 beanstalk redis 等等服务以组件的形式提供服务。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: