Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/fordev #113

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

hanshino
Copy link

@hanshino hanshino commented May 4, 2022

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 hanshino marked this pull request as draft May 4, 2022 17:31
@Kantai235 Kantai235 requested a review from tico88612 May 5, 2022 05:56
@Kantai235 Kantai235 added the 維運 DevOps 自動化軟體交付和架構變更的流程。 label May 5, 2022
@tico88612
Copy link
Collaborator

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

@hanshino hanshino marked this pull request as ready for review June 7, 2022 17:35
@hanshino
Copy link
Author

hanshino commented Jun 7, 2022

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

@tico88612
Copy link
Collaborator

tico88612 commented Jun 16, 2022

@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 再存檔即可。

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

@hanshino
Copy link
Author

hanshino commented Jul 2, 2022

使用 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
Copy link
Author

hanshino commented Jul 2, 2022

#113 (comment)

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

@tico88612 再麻煩過目了~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
維運 DevOps 自動化軟體交付和架構變更的流程。
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants