話說最近不知道為何長三角地區科學上網的速度慢了好多,好多國外開源站點更新程式碼速度都讓人無法忍受。
正遇到想整一下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 協議》,轉載必須註明作者和本文連結