把 LaraDock 的 v2 版本修改了一下,换成国内镜像
话说最近不知道为何长三角地区科学上网的速度慢了好多,好多国外开源站点更新代码速度都让人无法忍受。
正遇到想整一下docker环境就顺便看了一下很早以前就有了的Laradock/laradock项目,已然更新到v2版本了,扩展性已经强大了许多。不过如果按照官方的方式,海外用是挺方便,国内的更新速度就比较糟心了。
So,我改了个适配国内的版本:
https://github.com/nickfan/laradock
由于是仅针对国内用户加速的,估计发PR人也不会用,各位老司机有啥好提议直接Fork我的版本发PR给我,便宜我好了,哈哈 :D
特性:
- 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 协议》,转载必须注明作者和本文链接
推荐文章: