2016-06-20 7 views
0

Я пытаюсь запустить два контейнера докера на машине VPS с Ubuntu 15.10 и использую для этого docker-compose. Один контейнер - сервер mongodb, а другой - мое веб-приложение, написанное в node.js/sails.js.Выполнение команд в docker-compose

Я написал следующее в docker-compose.yml, так что docker-compose up будет запускать оба контейнера. Я монтирую веб-приложение в каталоге /host в контейнере докеров для веб-приложений и хотел бы сделать сопоставление портов 3050:1337 (хост: докер). Чтобы запустить веб-приложение, я использовал метку command и использовал bash для изменения каталога и выполнил команду sails lift, однако она не работает. Я предполагаю, что мой следующий сценарий неверно:

MongoDB: 
    image: mongo 

MyAPI: 
    image: sailsjs-microservice:dev 
    volumes: 
    - /root/Code/node/My-API:/host 
    command: bash -c "cd /host && sails lift" 
    ports: 
    - "3050:1337" 

Я ценю вашу помощь

+0

Хм, я думаю, вы забыли добавить ссылку на свой db в разделе API. Служба API должна иметь возможность напрямую подключиться к этому экземпляру mongo? –

ответ

1

Я не видел журналы в вашем sailsjs-microservice контейнера, но я думаю, вы должны добавить ссылку на ваш Монго контейнер в вашем Контейнер API.

Один из способов сделать это, добавив это в файл создания сообщения:

MyApi: 
    links: 
    - mongo:mongo 

Первый Монго это имя изображения, которое вы хотите связать, то второй является псевдонимом, может быть дб, например, , Docker будет экспортировать IP-адрес контейнера в качестве переменных окружения, а также добавить запись /etc/hosts, чтобы вы могли ссылаться на нее в коде своей службы, подключившись к mongo: 27017 (где mongo - это псевдоним, определенный в файле компоновки и 27017 - порт по умолчанию).

Посмотрите на link environment variables

1
MongoDB: 
    image: mongo 
    networks: 
     - myApi-tier 

MyAPI: 
    image: sailsjs-microservice:dev 
    volumes: 
    - /root/Code/node/My-API:/host 
    command: bash -c "cd /host && sails lift" 
    networks: 
     - myApi-tier 

networks: 
    myApi-tier: 

Вы можете попробовать с сетью, теперь в вашем распоряжении, чтобы решить MongoDB вы можете использовать стандартный порт и как Ури MongoDB.

Смежные вопросы