[英]How to create pm2 ecosystem.json file for node js express app which starts using npm start?
[英]How do I automatically start a node/express app (with pm2), having node installed using software collections (scl), on CentOS7
1.總結問題
我希望節點/表達式app.js在容器啟動時在端口3000上進行偵聽。
我創建了一個CentOS 7 Docker容器,安裝了軟件集合(SCL)存儲庫,然后安裝了節點。
我現在可以使用以下命令啟用node: scl enable rh-nodejs10 bash
,我照做了,然后安裝了express(全局)和pm2(全局),並且可以使用我在以下位置運行的命令成功運行最小的express應用程序,監聽端口3000命令行。
我將scl enable rh-nodejs10 bash
放在我的.bash_profile中(我創建的用戶名為www
,因為我不希望root用戶運行Web服務器)。
實際上,接下來我將構建一個無根容器(buildah),因此出於安全考慮,根本不會有“ root”用戶。
現在,在容器啟動時,我希望Web服務器自動啟動,並能夠從以下地址獲得響應: http:// localhost:3000 (您好,世界)。
問題在於,在容器啟動時,直到調用外殼將其啟用之前,才對任何用戶啟用該節點。
2.提供背景,包括您已經嘗試過的內容
我在網上搜索了使用node,express,pm2和CentOS 7軟件集合的解決方案,但沒有找到解決方案。
請僅在您實際嘗試過您建議的解決方案並使它正常工作時答復,否則它很可能無法工作。
systemd需要:
1. enable node
2. run pm2 start app
我嘗試將兩者都放入一個shell中,但是當您啟用節點時,您隨后將放入一個子shell中,並且無法編寫任何其他命令的腳本。
3.顯示一些代碼
scl enable rh-nodejs10 bash
4.描述預期和實際結果,包括任何錯誤消息
我希望節點/快速服務器在容器啟動時偵聽端口3000。
我使用此處找到的scl-utils / scl_source技術在RHEL 7上重新啟動時運行節點
$ cat /etc/profile.d/enablenodejs.sh
#!/bin/bash
source scl_source enable rh-nodejs10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.