码头工人组成的节点服务器发生故障
我写的是通过NPM脚本(NPM运行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
任何想法有什么不好?
回答如下:图像的CMD在它开始的任何目录了运行npm run server
该docker-compose.yml
working_dir: /
告诉容器在根目录下启动。这不是你想要的东西;你想要的容器中,你COPY'd它的源代码的目录启动。
你可能会立即解决的问题,如果你删除working_dir:
线。
码头工人组成的节点服务器发生故障
我写的是通过NPM脚本(NPM运行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
任何想法有什么不好?
回答如下:图像的CMD在它开始的任何目录了运行npm run server
该docker-compose.yml
working_dir: /
告诉容器在根目录下启动。这不是你想要的东西;你想要的容器中,你COPY'd它的源代码的目录启动。
你可能会立即解决的问题,如果你删除working_dir:
线。