13 Commits

Author SHA1 Message Date
3ba6b3a1cd fix: 還原 compose.demo.yaml 的 port 映射為 80:80 + 8080:8080
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 40s
ERP-Deploy-Production / deploy-production (push) Successful in 59s
2026-02-23 17:35:37 +08:00
ec239279f4 fix: 修正 Demo 環境 port 映射,避免特權端口權限錯誤
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 29s
ERP-Deploy-Production / deploy-production (push) Successful in 1m14s
Demo 主機的 Docker 沒有綁定特權端口 (80) 的權限,
將映射從 80:80 改為 8080:80(主機 8080 → 容器 Nginx 80)。
2026-02-23 17:27:59 +08:00
e2c36e9c0f chore: 推送當前部署與配置修改到所有分支
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 25s
ERP-Deploy-Production / deploy-production (push) Successful in 1m9s
2026-02-23 17:25:40 +08:00
30bf8ef79c fix: 解決部署初期因缺少 vendor 導致容器啟動崩潰的問題
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 32s
ERP-Deploy-Production / deploy-production (push) Successful in 59s
2026-02-23 17:23:53 +08:00
590d1ea9e9 fix: 移除 compose.yaml 中重複的鍵值
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 41s
ERP-Deploy-Production / deploy-production (push) Successful in 1m4s
2026-02-23 17:20:58 +08:00
cd0f454c98 refactor: 根據環境資訊還原容器名稱並維持多檔案 Compose 結構
Some checks failed
ERP-Deploy-Production / deploy-production (push) Has been cancelled
ERP-Deploy-Demo / deploy-demo (push) Has been cancelled
2026-02-23 17:20:44 +08:00
54e1e5df5a fix: 隔離正式與 Demo 環境的容器名稱以修復 CI/CD 衝突
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 26s
2026-02-23 17:17:07 +08:00
8e3d951d0d feat: 為 demo 環境增加 80 埠口對應
Some checks failed
ERP-Deploy-Production / deploy-production (push) Successful in 57s
ERP-Deploy-Demo / deploy-demo (push) Failing after 51s
2026-02-23 17:12:43 +08:00
d04e5bbffb docs: 修正 demo-proxy.conf 中的環境註解文字
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Failing after 26s
2026-02-23 17:12:20 +08:00
27273bfee4 fix: 更新 demo-proxy.conf 以符合正式環境配置並優化 SSL 轉發
Some checks failed
ERP-Deploy-Demo / deploy-demo (push) Has been cancelled
2026-02-23 17:11:58 +08:00
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
6 changed files with 36 additions and 37 deletions

View File

@@ -59,14 +59,14 @@ jobs:
cd /var/www/star-erp-demo cd /var/www/star-erp-demo
chown -R 1000:1000 . 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 相關檔案變更,執行完整重建..." 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 else
echo "⚡ 無 Docker 檔案變更,僅重載服務..." echo "⚡ 無 Docker 檔案變更,僅重載服務..."
if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then
echo "容器未運行,正在啟動..." 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 else
echo "容器已運行,跳過 docker compose直接進行程式碼部署..." echo "容器已運行,跳過 docker compose直接進行程式碼部署..."
fi fi

View File

@@ -41,9 +41,6 @@ jobs:
key: ${{ secrets.PROD_SSH_KEY }} key: ${{ secrets.PROD_SSH_KEY }}
script: | script: |
cd /var/www/star-erp 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 if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -qE '(Dockerfile|compose\.yaml|docker-compose\.yaml)'; then
echo "REBUILD_NEEDED=true" echo "REBUILD_NEEDED=true"
@@ -62,14 +59,14 @@ jobs:
cd /var/www/star-erp cd /var/www/star-erp
chown -R 1000:1000 . 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 相關檔案變更,執行完整重建..." 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 else
echo "⚡ 無 Docker 檔案變更,僅重載服務..." echo "⚡ 無 Docker 檔案變更,僅重載服務..."
if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then if ! docker ps --format '{{.Names}}' | grep -q 'star-erp-laravel'; then
echo "容器未運行,正在啟動..." 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 else
echo "容器已運行,跳過 docker compose直接進行程式碼部署..." echo "容器已運行,跳過 docker compose直接進行程式碼部署..."
fi fi

7
compose.demo.yaml Normal file
View File

@@ -0,0 +1,7 @@
services:
proxy:
ports:
- '80:80'
- '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

@@ -6,8 +6,8 @@ services:
args: args:
WWWGROUP: '${WWWGROUP}' WWWGROUP: '${WWWGROUP}'
image: 'sail-8.5/app' image: 'sail-8.5/app'
container_name: star-erp-laravel container_name: laravel
hostname: star-erp-laravel hostname: laravel
extra_hosts: extra_hosts:
- 'host.docker.internal:host-gateway' - 'host.docker.internal:host-gateway'
ports: ports:
@@ -29,8 +29,8 @@ services:
# - mailpit # - mailpit
mysql: mysql:
image: 'mysql/mysql-server:8.0' image: 'mysql/mysql-server:8.0'
container_name: star-erp-mysql container_name: mysql
hostname: star-erp-mysql hostname: mysql
ports: ports:
- '${FORWARD_DB_PORT:-3306}:3306' - '${FORWARD_DB_PORT:-3306}:3306'
environment: environment:
@@ -56,8 +56,8 @@ services:
timeout: 5s timeout: 5s
redis: redis:
image: 'redis:alpine' image: 'redis:alpine'
container_name: star-erp-redis container_name: redis
hostname: star-erp-redis hostname: redis
# ports: # ports:
# - '${FORWARD_REDIS_PORT:-6379}:6379' # - '${FORWARD_REDIS_PORT:-6379}:6379'
volumes: volumes:
@@ -74,11 +74,6 @@ services:
proxy: proxy:
image: 'nginx:alpine' image: 'nginx:alpine'
container_name: star-erp-proxy container_name: star-erp-proxy
ports:
- '8080:8080'
- '8081:8081'
volumes:
- './nginx/demo-proxy.conf:/etc/nginx/conf.d/default.conf:ro'
networks: networks:
- sail - sail
depends_on: depends_on:

View File

@@ -1,29 +1,22 @@
# 總後台 (landlord) - 端口 8080 # Demo 環境 (Demo) - 端口 80
server { # 外部 SSL 終止後(如 Cloudflare/NPM轉發至此端口
listen 8080;
server_name _;
location / { # 定義 map 以正確處理 X-Forwarded-Proto
proxy_pass http://star-erp-laravel:8080; map $http_x_forwarded_proto $proxy_x_forwarded_proto {
proxy_set_header Host star-erp.demo; default $http_x_forwarded_proto;
proxy_set_header X-Real-IP $remote_addr; '' $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
}
} }
# koori 租戶 - 端口 8081
server { server {
listen 8081; listen 80;
server_name _; server_name demo-erp.taiwan-star.com.tw;
location / { location / {
proxy_pass http://star-erp-laravel:8080; proxy_pass http://star-erp-laravel:8080;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Host $host;
} }
} }