簡體   English   中英

如何在CentOS7上使用軟件集合(scl)自動啟動節點/快速應用程序(使用pm2)並安裝了節點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM