Сбой Docker для узла сервера - PullRequest
       7

Сбой Docker для узла сервера

0 голосов
/ 05 февраля 2019

Я написал сервер узлов, который работает через скрипт npm (npm run dev).Я создал для него следующий Dockerfile:

FROM node:10.12.0

ARG COMMIT_REF
ARG BUILD_DATE

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

ENV APP_COMMIT_REF=${COMMIT_REF} \
    APP_BUILD_DATE=${BUILD_DATE}

ENV PORT 8009

EXPOSE 8009

CMD [ "npm", "run", "server" ]

Сборка и запуск сервера с:
docker build . -t server и docker run -it -p 8009:8009 --env-file .env server прекрасно работает, и сервер работает и работает на порту 8009.

Нет, я пытаюсь создать docker-compose.yml для него.Вот что я написал:

version: '3'

services:
    server:
        image: server
        build: .
        env_file:
            - .env
        volumes:
            - .:/usr/src/app
            - /usr/src/app/node_modules
        working_dir: /.
        ports:
            - 8009:8009

Когда я запускаю его, используя docker-compose up, я получаю:

Starting bed_server_1 ... done
Attaching to bed_server_1
server_1  | npm ERR! path /package.json
server_1  | npm ERR! code ENOENT
server_1  | npm ERR! errno -2
server_1  | npm ERR! syscall open
server_1  | npm ERR! enoent ENOENT: no such file or directory, open '/package.json'
server_1  | npm ERR! enoent This is related to npm not being able to find a file.
server_1  | npm ERR! enoent
server_1  |
server_1  | npm ERR! A complete log of this run can be found in:
server_1  | npm ERR!     /root/.npm/_logs/2019-02-04T22_27_50_916Z-debug.log
bed_server_1 exited with code 254

Есть идеи, что не так?

1 Ответ

0 голосов
/ 05 февраля 2019

CMD образа запускается npm run server в любом каталоге, в котором он запускается. docker-compose.yml working_dir: / указывает контейнеру запускаться в корневом каталоге.Это не то, что вы хотите;вы хотите, чтобы контейнер запускался в каталоге, в который вы скопировали его исходный код.

Вероятно, вы исправите свою непосредственную проблему, если удалите строку working_dir:.

...