我一直在使用slc run --detach --cluster "cpu"
通过一个定制的init.d/app.conf脚本部署一个回送应用程序,但我希望按照推荐的方式使用强-pm。
但是我遇到了一些限制,我正在寻找关于如何复制我目前熟悉的设置的任何指导。
目前,我在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
}
当我使用强-pm进行部署时,我无法控制这个端口,它总是被设置为3000+N,其中N只是基于部署时分配给应用程序的服务ID而递增。
因此,即使我部署并设置env时,也要使用
slc ctl -C http://localhost:8701 env-set proteus-demo PROTEUS_API_PORT=3033 PROTEUS_DB=demo APP_DOMAIN=demo.domain.com
我看到强-pm在重新部署新的env时完全忽略了PROTEUS_API_PORT:
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上游块的端口。如果能够通过服务名称指定侦听端口,那就太棒了。
FWIW,这是在一个aws实例上,它将主持指向不同DB和不同端口的演示和暂存应用程序。
发布于 2015-05-27 22:55:34
强-pm只设置一个PORT
环境变量,该应用程序负责荣誉。
基于loopback-boot/lib/executor:109,环回似乎实际上更喜欢PORT
环境变量而不是配置文件中的值。在这种情况下,你最好的选择是:
app.listen()
npm_config_port
(通常通过npm start --port 1234
设置)。https://stackoverflow.com/questions/30493897
复制相似问题