Ich kann nicht meinen Docker komponieren arbeiten.Docker Compose: NodeJS + MongoDB
Hier ist meine dockerfile:
FROM node:0.12
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /myapp
WORKDIR /myapp
ADD . /myapp
RUN npm install
Mein Docker-compose.yml
db:
image: mongo
ports:
- 27017
web:
build: .
command: npm start
volumes:
- .:/myapp
ports:
- 3000:3000
links:
- db
environment:
PORT: 3000
Und in server.js:
var MONGO_DB;
var DOCKER_DB = process.env.DB_1_PORT;
if (DOCKER_DB) {
MONGO_DB = DOCKER_DB.replace("tcp", "mongodb") + "/dev_db";
} else {
MONGO_DB = process.env.MONGODB;
}
mongoose.connect(MONGO_DB);
wie aus dieser Repo dupliziert: https://github.com/projectweekend/Node-Backend-Seed aber process.env.DB_1_PORT
ist leer. Wie kann ich es hinzufügen?
Dank
Der Port unter Umgebung sollte wie 'PORT = 3000' deklariert werden, was ihn zu einer Umgebungsvariable beim Build macht. Sie können testen, indem Sie "echo $ PORT" verwenden, was "3000" ergeben sollte. –
Yep, das ist, was ich in der 'Docker-compose.yml' kommentiert:' # dies optional ist, ausdrücklich erlaubt process.env.PORT anstelle eines rohen 3000' –
Ich denke, zu verwenden, was @ GHETTO.CHiLD sagt, ist, dass PORT: 3000 sollte - PORT = 3000 sein. Ich entschuldige mich, ich weiß nicht, wie man diese Antwort formatiert. – Leon