gpt4 book ai didi

node.js - 如何在 ovh 托管上使用 docker-compose

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:27 24 4
gpt4 key购买 nike

我仍然无法在我的 OVH VPS 中正确运行 docker-compose。

我正在使用 mongodb 开发一个小型 NodeJS 应用程序。我的配置在我的 PC (Windows 7) 上运行,但是当我将其推送到我的 VPS 上时,结果并不符合预期。

我的 docker-compose.yml

db:
image: mongo
ports:
- "27017:27017"
command: "--smallfiles --logpath=/dev/null"
web:
build: .
volumes:
- .:/app
ports:
- "3000:3000"
links:
- db
environment:
PORT: 3000

我的 Dockerfile(用于 NodeJS 部分)

FROM node:onbuild

WORKDIR /app

ADD package.json /app/package.json
RUN npm install && npm ls
RUN mv /app/node_modules /node_modules

EXPOSE 3000

CMD [ "node", "server.js" ]

我的nodeJS服务器

var mongoose = require('mongoose'); 
var express = require('express');

var MONGO_DB;
var DOCKER_DB = process.env.DB_PORT;
if ( DOCKER_DB ) {
MONGO_DB = DOCKER_DB.replace( 'tcp', 'mongodb' ) + '/app';
} else {
MONGO_DB = process.env.MONGODB;
}
var retry = 0;

mongoose.connect(MONGO_DB);



const app = express();

app.get('/', function (req, res) {
res.send('Hello world\n');
});

app.listen(process.env.PORT || 3000);

我的服务器上的 docker 版本 (Ubuntu 14.04)

Client:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Tue Apr 26 23:30:23 2016
OS/Arch: linux/amd64

Server:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Tue Apr 26 23:30:23 2016
OS/Arch: linux/amd64

当我运行时:

docker-compose up -d --build

一切正常,但最后只有 mongo 容器在运行,NodeJS 停止了。

有人有想法吗?

最佳答案

您的 server.js 文件与 Dockerfile 位于同一目录中吗?我认为问题在于 server.js 也必须位于 WORKDIR 中。而且我认为您正在将代码复制到此容器中,请使用 CP 而不是 RUN mv 。试试这个:

FROM node:onbuild

WORKDIR /app

ADD package.json /app/package.json
RUN npm install && npm ls
COPY /app/node_modules /node_modules

ADD server.js /app/server.js # add this line

EXPOSE 3000

CMD [ "node", "server.js" ]

更新了:我错误地写了 CP 而不是正确的 COPY,抱歉:(

关于node.js - 如何在 ovh 托管上使用 docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37054543/

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