gpt4 book ai didi

node.js - 如何在容器内正确运行nodejs?

转载 作者:搜寻专家 更新时间:2023-10-31 23:46:20 25 4
gpt4 key购买 nike

我有一个由 nginx 组成的 docker 镜像,用于服务器我的 index.html 文件,配置如下:

server {
listen 80;
server_name mysite;
root /var/www/application;
index index.html;
}

不,我需要添加 nodejs 来处理 /api/ 位置,就像下面这样:

upstream api_node_js {
server 127.0.0.1:3000;
}

server {
listen 80;
server_name mysite;
root /var/www/application;
index index.html;
}

location /api {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

rewrite ^/api/?(.*) /$1 break;

proxy_pass http://api_node_js;
proxy_redirect off;
}

所以我需要在 3000 上安装并运行 NodeJS 服务器来处理 api 请求。我的问题是我应该如何正确运行它?

我已经尝试通过 forever 添加运行在我的 Dockerfile 中使用以下命令:

WORKDIR /var/www/application
CMD ["forever", "start", "server.js"]

但不幸的是,容器启动后立即退出,没有错误。

请帮我看看我做错了什么?

最佳答案

虽然@ilyapt 是对的,您应该将 nginx 和 Node 分离到两个容器中,但这不是您问题的答案。你应该做的是从你的 docker cmd 中省略 start,以防止永远在后台运行 - 导致容器退出。

尝试将 dockerfile 中的最后一行更改为 - CMD ["forever", "server.js"] 看看是否有帮助。

关于node.js - 如何在容器内正确运行nodejs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40571142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com