使用 Laradock 的好處就是模擬實際的環境,這樣在開發過程中,比較不會發生測試環境的專案放到正式機上結果發生某些程式錯誤,例如測試環境使用XAMPP (PHP7.3, MariaDB10, Apache),正式機使用PHP7.4, MySQL8, nginx,此時就可以使用Laradock來模擬正式機環境,這樣在開發團隊中也使用一致性的開發環境。

安裝 Laradock 到 Laravel 專案中

參考 Laradock 官網 說明,若已經有 Laravel 專案,則須將 laradock 放在專案目錄下。

# 切換到 Laravel 專案的根目錄
# 安裝 Laradock
    git submodule add https://github.com/Laradock/laradock.git

複製 .env

# 切換到 laradock 目錄下
# 複製檔案
    copy env-example .env

修改 .env (基本上所有的設定都在這,簡單的修改一些設定)

# Point to the path of your applications code on your host
# 若是放在專案中不需要修改
APP_CODE_PATH_HOST=../

# Point to where the `APP_CODE_PATH_HOST` should be in the container
# 這個是進入到container的專案目錄
APP_CODE_PATH_CONTAINER=/var/www

# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have separate containers per project.
# 這個是 Image 的名稱
COMPOSE_PROJECT_NAME=laradock-test

# 設定 PHP 版本
### PHP Version ###########################################

# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM).
# Accepted values: 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=7.3

# 設定 MySQL
### MYSQL #################################################
MYSQL_VERSION=latest
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

# 設定 phpMyAdmin
### PHP MY ADMIN ##########################################
# Accepted values: mariadb - mysql
PMA_DB_ENGINE=mysql
# Credentials/Port:

PMA_USER=default
PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8081

執行 docker-compose 建立 container

# 使用 nginx 當伺服器
docker-compose up -d nginx mysql phpmyadmin workspace

# 使用 apache 當伺服器
docker-compose up -d apache mysql phpmyadmin workspace

測試 mysql

從 Container 中執行 phpmyadmin 或者 直接在瀏覽器中開啟 localhost:8081,注意這邊的伺服器是 mysql 不是 localhost

Larvel 的專案設定 DB_HOST = localhost

# 這邊要改成 localhost
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
最後修改日期: 2020 年 10 月 15 日