PolyMedX Production 部署精簡版(執行用)#
正式環境:MongoDB Server(獨立) + Application Server(polymed-system)
這裏假設:
Application Server:10.10.0.10 MongoDB Server: 10.10.0.20
0. 首次取得原始碼(Application Server)#
sudo mkdir -p /opt/polymedx
sudo chown "$USER" /opt/polymedx
cd /opt/polymedx
repo init \
-u git@ssh.dev.azure.com:v3/pixsee/PolyMedX/polymedx-manifest \
-b main \
-m default.xml
repo sync -c -j81. MongoDB Server#
# 1. 設定目錄
sudo mkdir -p /opt/polymedx
sudo chown "$USER" /opt/polymedx
cd /opt/polymedx
# 2. 複製檔案
# 將其中的 Application Server 中的 workspace-config/mongodb-deployment 整個目錄複製到 MongoDB Server 的 /opt/polymedx/
# 3. 確認目錄(從 Application Server 複製過來)
# /opt/polymedx/mongodb-deployment/
# ├── docker-compose.yml
# ├── production.mongodb.env.example
# └── mongo-init/
cd /opt/polymedx/mongodb-deployment
# 4. 設定
cp production.mongodb.env.example production.mongodb.env
chmod 600 production.mongodb.env
# 編輯 production.mongodb.env(IP、帳密、INIT_CLIENT_*)production.mongodb.env 關鍵項目:
MONGO_BIND_ADDRESS=10.10.0.20 #如果遇到問題改用 0.0.0.0
MONGO_PORT=27017
DEFAULT_MONGO_DB_NAME=tams
MONGO_INITDB_ROOT_USERNAME=tams_root
MONGO_INITDB_ROOT_PASSWORD='強密碼'
MONGO_APP_USERNAME=polymedx_app
MONGO_APP_PASSWORD='另一組強密碼'
INIT_CLIENT_ID=production-client
INIT_CLIENT_SECRET='強密碼'
INIT_CLIENT_NAME=PolyMedX Production# 5. 啟動
docker compose --env-file production.mongodb.env config -q
docker compose --env-file production.mongodb.env pull
docker compose --env-file production.mongodb.env up -d
docker compose --env-file production.mongodb.env ps # 確認 healthy
# (可選)既有 volume 補建 admin
docker compose --env-file production.mongodb.env \
--profile bootstrap run --rm bootstrap-admin2. Application Server#
# 1. 進入 workspace(repo sync 後的根目錄)
cd /opt/polymedx
# 2. 建立 env
cp production.env.example production.env
cp tams-frontend/.env.example tams-frontend/.env
cp tams-backend-service/.env.example tams-backend-service/.env
cp rmf-api-service/.env.example rmf-api-service/.env
chmod 600 production.env tams-backend-service/.env rmf-api-service/.env tams-frontend/.envproduction.env 關鍵項目:
DEFAULT_MONGO_URI=mongodb://10.10.0.20:27017/tams?authSource=tams
DEFAULT_MONGO_DB_NAME=tams
MONGO_APP_USERNAME=polymedx_app
MONGO_APP_PASSWORD='與 MongoDB 相同密碼'
REDIS_PASSWORD='強密碼'
RMF_API_KEY='正式 RMF API key'
ROSBRIDGE_URL=ws://host.docker.internal:9090# 3. 驗證連線
nc -vz 10.10.0.20 27017
# 4. 部署
make prod-config # 確認沒有 mongodb 服務
make prod-build # 首次或程式更新時
make prod-up # 啟動
# 5. 檢查
make prod-ps
make prod-logs首次登入:
- Email:
admin@tams.com - Password:
Tams123!→ 上線後請立即修改密碼
3. 日常指令#
| 指令 | 用途 |
|---|---|
make prod-up | 啟動 |
make prod-ps | 狀態 |
make prod-logs | 日誌 |
make prod-restart | 重啟 |
make prod-down | 停止 |
| make prod-up-seed | prod-up-build + 地圖 seed job |
⚠️ 正式環境請只用
make prod-*,不要用make up/make down。
快速檢查清單#
-
repo sync完成,原始碼已取得 -
workspace-config/mongodb-deployment已複製到 MongoDB Server -
DEFAULT_MONGO_URI與MONGO_BIND_ADDRESS的 ip 設定 -
MONGO_APP_*兩邊密碼一致 -
make prod-config無 mongodb 服務 - 預設管理員密碼已修改