我一直在使用slc run --detach --cluster "cpu"
通過自定義init.d/app.conf腳本部署環迴應用程序,但希望轉移到使用strong-pm,建議如下。strongloop slc部署環境變化複雜化
但我遇到了一些限制,我正在尋找關於如何複製我目前熟悉的設置的任何指導。
目前我在server/config.local.js
和server/datasources.local.js
之內設置了特定於應用程序的配置,最重要的是應用程序應該在其上監聽連接的端口。這工作完全使用slc run
地方發展和遠程部署分期,所有我做的是設置不同的Env瓦爾爲每個不同的應用:
datasources.local.js:
module.exports = {
"mysqlDS": {
name: "mysqlDS",
connector: "mysql",
host: process.env.PROTEUS_MYSQL_HOST,
port: process.env.PROTEUS_MYSQL_PORT,
database: process.env.PROTEUS_MYSQL_DB,
username: process.env.PROTEUS_MYSQL_USER,
password: process.env.PROTEUS_MYSQL_PW
}
}
config.local.js:
module.exports = {
port: process.env.PROTEUS_API_PORT
}
當我部署使用強時,我沒能控制這個端口,它總是被設置爲3000 + N,其中N是剛指針累加根據分配給應用程序的服務ID時,它的部署。
因此,即使當我部署,然後使用
slc ctl -C http://localhost:8701 env-set proteus-demo PROTEUS_API_PORT=3033 PROTEUS_DB=demo APP_DOMAIN=demo.domain.com
設置ENV我看到強時完全忽略PROTEUS_API_PORT當它與新的ENV重新部署瓦爾:
ENV has changed, restarting
Service "1" listening on 0.0.0.0:3001
Restarting next commit Runner: commit 1/deploy/default/demo-deploy
Start Runner: commit 1/deploy/default/demo-deploy
Request (status) of current Runner: child 20066 commit 1/deploy/default/demo-deploy
Request {"cmd":"status"} of Runner: child 20066 commit 1/deploy/default/demo-deploy
3001!不像我想要的3033,並在config.local.js中指定。有沒有一種方法可以明確地控制它?我不想在每次部署應用程序時運行slc檢查命令來確定我的nginx上游塊的端口。如果能夠通過服務名稱來指定listen PORT,那將會很棒。
FWIW,這是一個aws實例,它將主持演示和臨時應用程序指向單獨的數據庫和不同的端口。
是的,我的datasources.local.js配置文件正在使用(我看着日誌作爲應用程序無法連接到mongo,然後當我改變配置env-set,它停止錯誤,並開始收聽),但是config.local.js端口值沒有被使用。無論設置爲port :, strong-pm的應用程序都在3001上偵聽。 – Brian
根據文檔中的此頁面,端口會自動設置爲3000+服務ID,並且根據多少和順序您部署應用程序。 HTTP://docs.strongloop。com/display/SLC /正在部署+ an +應用程序+到+ Process + Manager 有沒有辦法重寫這個? – Brian
是的,我注意到PORT也暴露了一切。當我通過strong-pm進行部署時,我仍然不確定如何傳遞或設置單獨的PORT值。我應該在哪裏設置PORT或npm_config_port,以便strong-pm爲我想要運行的每個應用程序選擇一個不同的應用程序?當我使用slc ctl set-env時,它仍然被忽略,並且仍然使用3000 + N。 – Brian