git clone https://github.com/laradock/laradock.git?
例子:運(yùn)行 NGINX 和 MySQL:
docker-compose up -d? nginx mysql
你可以從以下列表選擇你自己的容器組合:
nginx,hhvm,php-fpm,mysql,redis,postgres,mariadb,neo4j,mongo,apache2,caddy,memcached,beanstalkd,beanstalkd-console,workspace.
說明:workspace和php-fpm將運(yùn)行在大部分實(shí)例中, 所以不需要在up命令中加上它們.
2 - 進(jìn)入 Workspace 容器, 執(zhí)行像 (Artisan, Composer, PHPUnit, Gulp, ...)等命令
docker-composeexecworkspace bash
增加--user=laradock(例如docker-compose exec --user=laradock workspace bash) 作為您的主機(jī)的用戶創(chuàng)建的文件. (你可以從docker-compose.yml修改 PUID (User id) 和 PGID (group id) 值 ).
3 - 編輯 Laravel 的配置.
如果你還沒有安裝 Laravel 項(xiàng)目,請查看How to Install Laravel in a Docker Container.
打開 Laravel 的.env文件 然后 配置 你的mysql的DB_HOST:
DB_HOST=mysql
4 - 打開瀏覽器訪問 localhost (http://localhost/).
調(diào)試: 如果你碰到任何問題,請查看調(diào)試章節(jié) 如果你需要特別支持丑孩,請聯(lián)系我,更多細(xì)節(jié)在幫助 & 問題章節(jié)
docker ps
你也可以使用以下命令查看某項(xiàng)目的容器
docker-compose ps
docker-compose stop
停止某個(gè)容器:
docker-compose stop {容器名稱}
docker-compose down
小心這個(gè)命令,因?yàn)樗矔h除你的數(shù)據(jù)容器李皇。(如果你想保留你的數(shù)據(jù)你應(yīng)該在上述命令后列出容器名稱刪除每個(gè)容器本身):*
進(jìn)入容器 (通過 SSH 進(jìn)入一個(gè)運(yùn)行中的容器)
1 - 首先使用docker ps命令查看正在運(yùn)行的容器
2 - 進(jìn)入某個(gè)容器使用:
docker-composeexec{container-name} bash
例如: 進(jìn)入 MySQL 容器
docker-composeexecmysql bash
3 - 退出容器, 鍵入exit.
打開docker-compose.yml然后 按照你想的修改.
例如:
修改 MySQL 數(shù)據(jù)庫名稱:
environment:MYSQL_DATABASE:laradock
修改 Redis 默認(rèn)端口為 1111:
ports:? ? -"1111:6379"
1 - 找到你想修改的鏡像的Dockerfile,
例如:mysql在mysql/Dockerfile.
2 - 按你所要的編輯文件.
3 - 重新構(gòu)建容器:
docker-compose build mysql
更多信息在容器重建中點(diǎn)擊這里.
如果你做任何改變Dockerfile確保你運(yùn)行這個(gè)命令,可以讓所有修改更改生效:
docker-compose build
選擇你可以指定哪個(gè)容器重建(而不是重建所有的容器):
docker-compose build {container-name}
如果你想重建整個(gè)容器,你可能需要使用--no-cache選項(xiàng) (docker-compose build --no-cache {container-name}).
為了增加鏡像(軟件), 編輯docker-compose.yml添加容器細(xì)節(jié)座云, 你需要熟悉docker compose 文件語法.
Nginx的日志在logs/nginx目錄
然后查看其它容器日志(MySQL, PHP-FPM,...) 你可以運(yùn)行:
docker logs {container-name}
1 - 首先你需要進(jìn)入 Workspace 容器.
2 - 安裝 Laravel.
例如 使用 Composer
composer create-project laravel/laravel my-cool-app"5.2.*"
我們建議使用composer create-project替換 Laravel 安裝器去安裝 Laravel.
關(guān)于更多 Laravel 安裝內(nèi)容請點(diǎn)擊這兒.
3 - 編輯docker-compose.yml映射新的應(yīng)用目錄: 系統(tǒng)默認(rèn) Laradock 假定 Laravel 應(yīng)用在 laradock 的父級目錄中
更新 Laravel 應(yīng)用在my-cool-app目錄中, 我們需要用../my-cool-app/:/var/www替換../:/var/www, 如下:
application:build:./applicationvolumes:? ? ? ? ? ? -../my-cool-app/:/var/www
4 - 進(jìn)入目錄下繼續(xù)工作..
cdmy-cool-app
5 - 回到 Laradock 安裝步驟,看看如何編輯.env的文件疙赠。
你可以從 Workspace 容器運(yùn)行 artisan 命令和其他終端命令
1 - 確認(rèn) Workspace 容器已經(jīng)運(yùn)行.
docker-compose up -d workspace // ..and all your other containers
2 - 找到 Workspace 容器名稱:
docker-compose ps
3 - 進(jìn)入 Workspace 容器:
docker-composeexecworkspace bash
增加--user=laradock(例如docker-compose exec --user=laradock workspace bash) 作為您的主機(jī)的用戶創(chuàng)建的文件.
4 - 運(yùn)行任何你想的 :)
php artisan
composer update
phpunit
1 - 首先務(wù)必用docker-compose up命令運(yùn)行 (redis) 容器.
docker-compose up -d redis
2 - 打開你的Laravel的.env文件 然后 配置redis的REDIS_HOST
REDIS_HOST=redis
如果在你的.env文件沒有找到REDIS_HOST變量。打開數(shù)據(jù)庫配置文件config/database.php然后用redis替換默認(rèn) IP127.0.0.1朦拖,例如:
'redis'=>['cluster'=>false,'default'=>['host'=>'redis','port'=>6379,'database'=>0,],],
3 - 啟用 Redis 緩存或者開啟 Session 管理也在.env文件中用redis替換默認(rèn)file設(shè)置CACHE_DRIVER和SESSION_DRIVER
CACHE_DRIVER=redis
SESSION_DRIVER=redis
4 - 最好務(wù)必通過 Composer 安裝predis/predis包(~1.0):
composer require predis/predis:^1.0
5 - 你可以用以下代碼在 Laravel 中手動測試:
\Cache::store('redis')->put('Laradock','Awesome',10);
1 - 首先在 Workspace 和 PHP-FPM 容器中安裝mongo:
a) 打開 `docker-compose.yml` 文件
b) 在 Workspace 容器中找到 `INSTALL_MONGO` 選項(xiàng):
c) 設(shè)置為 `true`
d) 在 PHP-FPM 容器中找到 `INSTALL_MONGO`
e) 設(shè)置為 `true`
相關(guān)配置項(xiàng)如下:
workspace:build:context:./workspaceargs:? ? ? ? ? ? ? ? -INSTALL_MONGO=true...php-fpm:build:context:./php-fpmargs:? ? ? ? ? ? ? ? -INSTALL_MONGO=true...
2 - 重建Workspace、PHP-FPM容器
docker-compose build workspace php-fpm
3 - 使用docker-compose up命令運(yùn)行 MongoDB 容器 (mongo)
docker-compose up -d mongo
4 - 在config/database.php文件添加 MongoDB 的配置項(xiàng):
'connections'=>['mongodb'=>['driver'=>'mongodb','host'=>env('DB_HOST','localhost'),'port'=>env('DB_PORT',27017),'database'=>env('DB_DATABASE','database'),'username'=>'','password'=>'','options'=>['database'=>'',]],//...],
5 - 打開 Laravel 的.env文件然后更新以下字段:
設(shè)置DB_HOST為mongo的主機(jī) IP.
設(shè)置DB_PORT為27017.
設(shè)置DB_DATABASE為database.
6 - 最后務(wù)必通過 Composer 安裝jenssegers/mongodb包厌衔,添加服務(wù)提供者(Laravel Service Provider)
composer require jenssegers/mongodb
更多細(xì)節(jié)內(nèi)容點(diǎn)擊這兒.
7 - 測試:
首先讓你的模型繼承 Mongo 的 Eloquent Model. 查看文檔.
進(jìn)入 Workspace 容器.
遷移數(shù)據(jù)庫php artisan migrate.
安裝 PHP 擴(kuò)展之前,你必須決定你是否需要FPM或CLI,因?yàn)樗麄儼惭b在不同的容器上,如果你需要兩者,則必須編輯兩個(gè)容器璧帝。
PHP-FPM 拓展務(wù)必安裝在php-fpm/Dockerfile-XX.(用你 PHP 版本號替換 XX).
PHP-CLI 拓展應(yīng)該安裝到workspace/Dockerfile.
默認(rèn)運(yùn)行PHP-FPM 7.0版本.
PHP-FPM 負(fù)責(zé)服務(wù)你的應(yīng)用代碼,如果你是計(jì)劃運(yùn)行您的應(yīng)用程序在不同 PHP-FPM 版本上,則不需要更改 PHP-CLI 版本富寿。
1 - 打開docker-compose.yml睬隶。
2 - 在PHP容器的Dockerfile-70文件。
3 - 修改版本號, 用Dockerfile-56替換Dockerfile-70, 例如:
php-fpm:
build:
context: ./php-fpm
dockerfile: Dockerfile-70
4 - 最后重建PHP容器
docker-compose build php
更多關(guān)于PHP基礎(chǔ)鏡像, 請?jiān)L問PHP Docker官方鏡像.
我們已不在本地支持 PHP5.5页徐,但是你按照以下步驟獲人涨薄:
1 - 克隆https://github.com/laradock/php-fpm.
2 - 重命名Dockerfile-56為Dockerfile-55.
3 - 編輯文件FROM php:5.6-fpm為FROM php:5.5-fpm.
4 - 從Dockerfile-55構(gòu)建鏡像.
5 - 打開docker-compose.yml文件.
6 - 將php-fpm指向你的Dockerfile-55文件.
默認(rèn)運(yùn)行PHP-CLI 7.0版本
說明: PHP-CLI 只用于執(zhí)行 Artisan 和 Composer 命令,不服務(wù)于你的應(yīng)用代碼变勇,這是 PHP-FPM 的工作恤左,所以編輯 PHP-CLI 的版本不是很重要。 PHP-CLI 安裝在 Workspace 容器搀绣,改變 PHP-CLI 版本你需要編輯workspace/Dockerfile. 現(xiàn)在你必須手動修改 PHP-FPM 的Dockerfile或者創(chuàng)建一個(gè)新的飞袋。 (可以考慮貢獻(xiàn)功能).
1 - 首先在 Workspace 和 PHP-FPM 容器安裝xDebug:
a) 打開 `docker-compose.yml` 文件
b) 在 Workspace 容器中找到 `INSTALL_XDEBUG` 選項(xiàng)
c) 改為 `true`
d) 在 PHP-FPM 容器中找到 `INSTALL_XDEBUG ` 選項(xiàng)
e) 改為 `true`
例如:
workspace:build:context:./workspaceargs:? ? ? ? ? ? ? ? -INSTALL_XDEBUG=true...php-fpm:build:context:./php-fpmargs:? ? ? ? ? ? ? ? -INSTALL_XDEBUG=true...
2 - 重建容器docker-compose build workspace php-fpm
假定你的自定義域名是laravel.dev
1 - 打開/etc/hosts文件添加以下內(nèi)容,映射你的 localhost 地址127.0.0.1為laravel.dev域名
127.0.0.1? ? laravel.dev
2 - 打開你的瀏覽器訪問{http://laravel.dev}
你可以在 nginx 配置文件自定義服務(wù)器名稱,如下:
server_name laravel.dev;
為啟用全局 Composer Install 在容器構(gòu)建中允許你安裝 composer 的依賴链患,然后構(gòu)建完成后就是可用的巧鸭。
1 - 打開docker-compose.yml文件
2 - 在 Workspace 容器找到COMPOSER_GLOBAL_INSTALL選項(xiàng)并設(shè)置為true
例如:
workspace:build:context:./workspaceargs:? ? ? ? ? ? ? ? -COMPOSER_GLOBAL_INSTALL=true...
3 - 現(xiàn)在特價(jià)你的依賴關(guān)系到workspace/composer.json
4 - 重建 Workspace 容器docker-compose build workspace
Prestissimo是一個(gè)平行安裝功能的 composer 插件。
1 - 在安裝期間麻捻,使全局 Composer Install 正在運(yùn)行:
點(diǎn)擊這個(gè) [啟用全局 Composer 構(gòu)建安裝](#Enable-Global-Composer-Build-Install) 然后繼續(xù)步驟1纲仍、2.
2 - 添加 prestissimo 依賴到 Composer:
a - 現(xiàn)在打開workspace/composer.json文件
b - 添加"hirak/prestissimo": "^0.3"依賴
c - 重建 Workspace 容器docker-compose build workspace
在 Workspace 容器安裝 NVM 和 NodeJS
1 - 打開docker-compose.yml文件
2 - 在 Workspace 容器找到INSTALL_NODE選項(xiàng)設(shè)為true
例如:
workspace:build:context:./workspaceargs:? ? ? ? ? ? ? ? -INSTALL_NODE=true...
3 - 重建容器docker-compose build workspace
這里是你可能面臨的常見問題列表,以及可能的解決方案.
在 Laravel 根目錄,運(yùn)行下列命令:
sudo chmod -R 777 storage bootstrap/cache
看到 "Welcome to nginx" 而不是 Laravel 應(yīng)用!
在瀏覽器使用http://127.0.0.1替換http://localhost.
看到包含address already in use的錯(cuò)誤
確保你想運(yùn)行的服務(wù)端口(80, 3306, etc.)不是已經(jīng)被其他程序使用贸毕,例如apache/httpd服務(wù)或其他安裝的開發(fā)工具
從 Docker Toolbox (VirtualBox) 移動到 Docker Native (for Mac/Windows)郑叠,需要從 Laradock v3.* 升級到 v4.*:
停止 Docker 虛擬機(jī)docker-machine stop {default}
升級 Laradock 到v4.*.*(git pull origin master)
像之前一樣使用 Laradock:docker-compose up -d nginx mysql.
說明:如果你面臨任何上面的問題的最后一步:重建你所有的容器
docker-compose build --no-cache
"警告:容器數(shù)據(jù)可能會丟失!"
這個(gè)小項(xiàng)目是由一個(gè)有一個(gè)全職工作和很多的職責(zé)的人建立的,所以如果你喜歡這個(gè)項(xiàng)目,并且發(fā)現(xiàn)它需要一個(gè) bug 修復(fù)或支持或新軟件或升級任何容器,或其他任何. . 你是非常歡迎,歡迎毫不不猶豫地貢獻(xiàn)吧:)
從聊天室Gitter社區(qū)獲取幫助和支持.
你也可以打開 Github 上的issue(將被貼上問題和答案) 或與大家討論Gitter.
Docker 或 Laravel 的特別幫助崖咨,你可以在Codementor.io上直接和項(xiàng)目創(chuàng)始人在線溝通