我一直在使用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