Compare commits

...

6 Commits

Author SHA1 Message Date
2a88649f75 feat: 拆分 Docker Compose 配置為多檔案繼承模式並優化部署工作流
Some checks failed
ERP-Deploy-Production / deploy-production (push) Successful in 1m0s
ERP-Deploy-Demo / deploy-demo (push) Failing after 24s
2026-02-23 17:06:15 +08:00
e9313158ba 為了在 gitea_work (LXC) 順利部署 demo,將網路模式改為 host 並同步相關配置 2026-02-23 16:52:27 +08:00
f3da49a76a 觸發 Demo CI/CD 部署 (更新 SSH Key 後再次重試)
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 34s
2026-02-23 16:10:11 +08:00
747f70865d 修正 CI/CD 部署後 npm run build 殘留的 public/hot 導致 Vite HMR 及 CORS 報錯問題
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 24s
ERP-Deploy-Production / deploy-production (push) Successful in 58s
2026-02-23 16:02:40 +08:00
6bb2afa3b7 移除 Dockerfile 中的 setcap 以修復 LXC sysctl 權限問題,並將內部 port 改為 8080
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 25s
ERP-Deploy-Production / deploy-production (push) Successful in 53s
2026-02-23 15:58:52 +08:00
59008eb59e 更名 CI/CD 工作流名稱,移除 Koori 前綴
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 28s
ERP-Deploy-Production / deploy-production (push) Successful in 1m0s
2026-02-23 15:51:15 +08:00
8 changed files with 29 additions and 24 deletions

View File

@@ -1,4 +1,4 @@
name: Koori-ERP-Deploy-Demo
name: ERP-Deploy-Demo
on:
push:
@@ -59,14 +59,14 @@ jobs:
cd /var/www/star-erp-demo
chown -R 1000:1000 .
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|docker-compose\.yaml)'; then
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|compose\.demo\.yaml|docker-compose\.yaml)'; then
echo "🔄 偵測到 Docker 相關檔案變更,執行完整重建..."
WWWGROUP=1000 WWWUSER=1000 docker compose up -d --build --wait
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml -f compose.demo.yaml up -d --build --wait
else
echo "⚡ 無 Docker 檔案變更,僅重載服務..."
if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then
echo "容器未運行,正在啟動..."
WWWGROUP=1000 WWWUSER=1000 docker compose up -d --wait
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml -f compose.demo.yaml up -d --wait
else
echo "容器已運行,跳過 docker compose直接進行程式碼部署..."
fi
@@ -86,6 +86,7 @@ jobs:
composer install --no-dev --optimize-autoloader --no-interaction &&
npm install &&
npm run build &&
rm -f public/hot &&
php artisan storage:link &&
php artisan migrate --force &&
php artisan tenants:migrate --force &&

View File

@@ -1,4 +1,4 @@
name: Koori-ERP-Deploy-Production
name: ERP-Deploy-Production
on:
push:
@@ -41,9 +41,6 @@ jobs:
key: ${{ secrets.PROD_SSH_KEY }}
script: |
cd /var/www/star-erp
# [Patch] 修正正式機 Nginx Proxy 配置 (對應外部 SSL/OpenResty)
sed -i "s/- '8080:8080'/- '80:80'\n - '8080:8080'/" compose.yaml
sed -i "s/demo-proxy.conf/prod-proxy.conf/" compose.yaml
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|docker-compose\.yaml)'; then
echo "REBUILD_NEEDED=true"
@@ -62,14 +59,14 @@ jobs:
cd /var/www/star-erp
chown -R 1000:1000 .
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|docker-compose\.yaml)'; then
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|compose\.prod\.yaml|docker-compose\.yaml)'; then
echo "🔄 偵測到 Docker 相關檔案變更,執行完整重建..."
WWWGROUP=1000 WWWUSER=1000 docker compose up -d --build --wait
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml -f compose.prod.yaml up -d --build --wait
else
echo "⚡ 無 Docker 檔案變更,僅重載服務..."
if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then
echo "容器未運行,正在啟動..."
WWWGROUP=1000 WWWUSER=1000 docker compose up -d --wait
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml -f compose.prod.yaml up -d --wait
else
echo "容器已運行,跳過 docker compose直接進行程式碼部署..."
fi
@@ -80,7 +77,8 @@ jobs:
docker exec -u 1000:1000 -w /var/www/html star-erp-laravel sh -c "
composer install --no-dev --optimize-autoloader &&
npm install &&
npm run build
npm run build &&
rm -f public/hot
php artisan storage:link &&
php artisan migrate --force &&

6
compose.demo.yaml Normal file
View File

@@ -0,0 +1,6 @@
services:
proxy:
ports:
- '8080:8080'
volumes:
- './nginx/demo-proxy.conf:/etc/nginx/conf.d/default.conf:ro'

7
compose.prod.yaml Normal file
View File

@@ -0,0 +1,7 @@
services:
proxy:
ports:
- '80:80'
- '8080:8080'
volumes:
- './nginx/prod-proxy.conf:/etc/nginx/conf.d/default.conf:ro'

View File

@@ -74,11 +74,6 @@ services:
proxy:
image: 'nginx:alpine'
container_name: star-erp-proxy
ports:
- '8080:8080'
- '8081:8081'
volumes:
- './nginx/demo-proxy.conf:/etc/nginx/conf.d/default.conf:ro'
networks:
- sail
depends_on:

View File

@@ -11,7 +11,7 @@ WORKDIR /var/www/html
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
ENV SUPERVISOR_PHP_COMMAND="/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80"
ENV SUPERVISOR_PHP_COMMAND="/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=8080"
ENV SUPERVISOR_PHP_USER="sail"
ENV PLAYWRIGHT_BROWSERS_PATH=0
@@ -75,8 +75,6 @@ RUN apt-get update && apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.5
RUN userdel -r ubuntu
RUN groupadd --force -g $WWWGROUP sail
RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail
@@ -87,6 +85,6 @@ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY php.ini /etc/php/8.5/cli/conf.d/99-sail.ini
RUN chmod +x /usr/local/bin/start-container
EXPOSE 80/tcp
EXPOSE 8080/tcp
ENTRYPOINT ["start-container"]

View File

@@ -4,7 +4,7 @@ server {
server_name _;
location / {
proxy_pass http://star-erp-laravel:80;
proxy_pass http://star-erp-laravel:8080;
proxy_set_header Host star-erp.demo;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -19,7 +19,7 @@ server {
server_name _;
location / {
proxy_pass http://star-erp-laravel:80;
proxy_pass http://star-erp-laravel:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View File

@@ -12,7 +12,7 @@ server {
server_name erp.koori.tw erp.mamaiclub.com;
location / {
proxy_pass http://star-erp-laravel:80;
proxy_pass http://star-erp-laravel:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;