yarkov
@yarkov
Помог ответ? Отметь решением.

Как начать работать с Docker?

Имеем Node.js приложение, работающее с MongoDB. Nginx подключу позже. Пытаюсь въехать в докер.
Имеем такой docker-compose.yml
version: '2'
services:
  api:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ".:/app"
    ports:
      - "3000:3000"
    network_mode: host
    depends_on:
      - mongo
  mongo:
    command: mongod
    image: mongo:3.2.0
    ports:
      - "27017:27017"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    logging:
      driver: none

и содержимое Dockerfile
FROM node:8.9.1
EXPOSE 3000
COPY . /app/
RUN cd /app && \
    rm -rf ./node_modules && \
    npm install --from-lock-file --force --no-save && \
    npm install pm2 --global && \
    npm run docs && \
    chmod +x *.sh && \
    ./keys.sh
WORKDIR /app
CMD npm run dev

Запускаю командой:
docker-compose --file docker-compose.yml up --build

В итоге, когда у меня отрабатывает pm2 (npm run dev запускает), то в докере запущена только MongoDB.
Выполняю
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
dadb6415c8f4        mongo:3.2.0         "/entrypoint.sh mo..."   About an hour ago   Up 6 seconds        0.0.0.0:27017->27017/tcp   backend_mongo_1

Выполняю
$ netstat -ntlp
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      6395/python     
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::27017                :::*                    LISTEN      -

Что я не так делаю?
  • Вопрос задан
  • 576 просмотров
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Контейнер дохнет, если основной процесс внутри закончился. Смотрите логи
docker logs НАЗВАНИЕ_КОНТЕЙНЕРА
НАЗВАНИЕ_КОНТЕЙНЕРА вытягиваем через
docker ps -a
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы