init.engineer icon indicating copy to clipboard operation
init.engineer copied to clipboard

Feature/fordev

Open hanshino opened this issue 3 years ago • 5 comments

Docker 啟動方式建置

為了讓更多協作者,不會因為初次架設純靠系統環境而被勸退 因次開啟本次 issue #109 來協助希望一起開發的協作者迅速架設起本系統

備註:此次專注於協助在本地端架設系統,並不適合作為正式環境佈署使用

使用說明

相依套件安裝

Linux

bash scripts/setup.sh

Windows

待補

啟動系統

初次啟動打包 image

docker-compose build

啟動所有服務

docker-compose up -d

初次執行本系統

如果為初次架設起本系統,請執行以下腳本,將會執行

  1. Laravel app key 的產生
  2. 資料庫的 migration
bash scripts/init.sh

實用指令

資料庫 Migration

當其他開發者有資料庫的欄位異動,可執行本指令,將資料庫欄位更新至最新

docker-compose exec app php artisan migrate

artisan 相關操作

需透過 Laravelartisan 進行相關操作皆可透過以下指令存取 並且在後方加入想執行的參數即可

docker-compose exec app php artisan

套件安裝

docker-compose exec app composer require foo/bar

單元測試

docker-compose exec app php artisan test

hanshino avatar May 04 '22 17:05 hanshino

關心一下 @hanshino 進度如何(X)

tico88612 avatar Jun 07 '22 15:06 tico88612

我覺得還是轉成 ready 會比較好XD 本來想說如果還有要新增修改的用 draft 才能避免直接被 merge

hanshino avatar Jun 07 '22 17:06 hanshino

@hanshino 抱歉,晚 review 了,我稍微初步 Check 過了,但有些問題

  1. scripts 的檔案沒有 execute 權限,需要補權限 chmod +x ./scripts/init.sh && chmod +x ./scripts/setup.sh 再 commit 上去。
  2. scripts 的換行格式好像都是 Windows 的(\r\n),需要改成 Linux 格式(\n),不然無法正常使用(WSL 2 測試)。使用 vim 可以 :set fileformat=unix 再存檔即可。

目前我看到問題是這樣,如果有其他問題我會再留言回覆的。 如果不介意的話,也可以開權限給我一起修改,感謝!

tico88612 avatar Jun 16 '22 18:06 tico88612

使用 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
    
  • 配置純靠北工程師的環境變數

    1. APP_CODE_PATH_HOST=../init.enginner

      這代表著稍後 laradock 將會在上一層目錄下純靠北工程師的專案讀取程式碼

    2. PHP_VERSION=8.1

      純靠北工程師的 PHP 環境是 8.1

    3. MYSQL_USER=homestead (預設是 default)
    4. MYSQL_PASSWORD=secret (預設是 secret)
    5. 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

hanshino avatar Jul 02 '22 15:07 hanshino

https://github.com/init-engineer/init.engineer/pull/113#issuecomment-1172919925

因為最近用了 laradock 的關係,發現其實別人做好的比較完整 因此寫了一份教學文件來讓大家參考一下,哪一種會比較適合這個專案!

@tico88612 再麻煩過目了~

hanshino avatar Jul 02 '22 16:07 hanshino