Я не могу заставить свою работу докеров сочинять.Docker Compose: NodeJS + MongoDB
Вот мой 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
Мой докер-compose.yml
db:
image: mongo
ports:
- 27017
web:
build: .
command: npm start
volumes:
- .:/myapp
ports:
- 3000:3000
links:
- db
environment:
PORT: 3000
И в 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);
, как из продублированы из этого репо: https://github.com/projectweekend/Node-Backend-Seed но process.env.DB_1_PORT
пуст. Как его добавить?
Благодаря
порт в среде должен быть объявлен как 'PORT = 3000', что превращает его в переменную среды при сборке. вы можете проверить, перейдя 'echo $ PORT', который должен произвести' 3000'. –
Да, это то, что я прокомментировал в 'docker-compose.yml':' # это необязательно, позволяет выразить использование process.env.PORT вместо сырого 3000' –
Я думаю, что @ GHETTO.CHILD говорит, что ПОРТ: 3000 должно быть - ПОРТ = 3000. Мои извинения Я не знаю, как отформатировать этот ответ. – Leon