Feature/fordev
Docker 啟動方式建置
為了讓更多協作者,不會因為初次架設純靠系統環境而被勸退 因次開啟本次 issue #109 來協助希望一起開發的協作者迅速架設起本系統
備註:此次專注於協助在本地端架設系統,並不適合作為正式環境佈署使用
使用說明
相依套件安裝
Linux
bash scripts/setup.sh
Windows
待補
啟動系統
初次啟動打包 image
docker-compose build
啟動所有服務
docker-compose up -d
初次執行本系統
如果為初次架設起本系統,請執行以下腳本,將會執行
Laravel app key的產生- 資料庫的
migration
bash scripts/init.sh
實用指令
資料庫 Migration
當其他開發者有資料庫的欄位異動,可執行本指令,將資料庫欄位更新至最新
docker-compose exec app php artisan migrate
artisan 相關操作
需透過 Laravel 的 artisan 進行相關操作皆可透過以下指令存取
並且在後方加入想執行的參數即可
docker-compose exec app php artisan
套件安裝
docker-compose exec app composer require foo/bar
單元測試
docker-compose exec app php artisan test
關心一下 @hanshino 進度如何(X)
我覺得還是轉成 ready 會比較好XD 本來想說如果還有要新增修改的用 draft 才能避免直接被 merge
@hanshino 抱歉,晚 review 了,我稍微初步 Check 過了,但有些問題
scripts的檔案沒有 execute 權限,需要補權限chmod +x ./scripts/init.sh && chmod +x ./scripts/setup.sh再 commit 上去。scripts的換行格式好像都是 Windows 的(\r\n),需要改成 Linux 格式(\n),不然無法正常使用(WSL 2 測試)。使用 vim 可以:set fileformat=unix再存檔即可。
目前我看到問題是這樣,如果有其他問題我會再留言回覆的。 如果不介意的話,也可以開權限給我一起修改,感謝!
使用 laradock 架設純靠北工程師
前置動作
將 laradock clone 至自己的電腦
git clone https://github.com/Laradock/laradock.git
將 init.engineer clone 至自己的電腦
git clone https://github.com/init-engineer/init.engineer
檔案配置如下:
.
├── laradock
└── init.engineer
laradock 配置
以下動作請都在 laradock 目錄下執行:
環境配置
-
首先複製預設的環境變數檔案
cp .env.example .env -
配置純靠北工程師的環境變數
APP_CODE_PATH_HOST=../init.enginner這代表著稍後
laradock將會在上一層目錄下純靠北工程師的專案讀取程式碼PHP_VERSION=8.1純靠北工程師的 PHP 環境是 8.1
MYSQL_USER=homestead(預設是default)MYSQL_PASSWORD=secret(預設是secret)MYSQL_DATABASE=homestead(預設是default)以上三個步驟非必要,如果有設定的話會影響後續純靠北環境設置的變數
啟動 laradock
docker-compose up -d nginx mysql phpmyadmin redis workspace
or 你使用比較新版的 docker
docker compose up -d nginx mysql phpmyadmin redis workspace
如果初次啟動的話,這個步驟會經過很長一段時間的環境建置,請耐心等待
init.engineer 配置
以下動作請都在 init.engineer 目錄下執行:
環境配置
-
首先複製預設的環境變數檔案
cp .env.example .env -
配置純靠北工程師的環境變數
DB_HOST="mysql"因為專案將會在
docker內部的workspace執行,而docker內部將會將mysql這個名稱自動對應到mysql container的 ip 位置DB_USERNAME="homestead"(預設是default)DB_PASSWORD="secret"(預設是secret)DB_DATABASE="homestead"(預設是default)以上三個步驟需根據在
laradock中的環境變數設定CACHE_DRIVER="redis"使用
redis做為暫存驅動REDIS_HOST="redis"因為專案將會在
docker內部的workspace執行,而docker內部將會將redis這個名稱自動對應到redis container的 ip 位置REDIS_PASSWORD="secret_redis"
套件安裝
- 進入
workspace container進行操作
docker exec -it laradock_workspace_1 bash
如果看到
root@d4dec0b360c7:/var/www#的訊息,代表已經進入到container中
- 開始安裝
composer install
建立 Laravel App Key
此步驟一樣在
workspace container中執行
php artisan key:generate
建立 Laravel 資料庫
php artisan migrate:fresh --seed
前端設置
npm install
npm run production
恭喜你,你已經完成了純靠北工程師的專案的建置。 enjoy!
補充說明
laradock的資料庫檔案會存放在哪呢?
可以參考 laradock 中的 .env 設定的 DATA_PATH_HOST 參數,他預設的路徑會是 ~/.laradock/data
基於這個原因可以補充一下,如果不小心在還未設定好資料庫配置的情況下,就啟動了所有服務,因為 mysql 在初次啟動的時候就會進行配置,這時候就算你將 MYSQL_USER 相關參數做調整,也是無法成功生效的,因此,這種時候需要將原本的資料庫檔案刪除,讓 mysql 重新啟動後,再一次地進行初次配置。
操作如下:
docker-compose down -v
rm -rf ~/.laradock/data
https://github.com/init-engineer/init.engineer/pull/113#issuecomment-1172919925
因為最近用了 laradock 的關係,發現其實別人做好的比較完整
因此寫了一份教學文件來讓大家參考一下,哪一種會比較適合這個專案!
@tico88612 再麻煩過目了~