无法启动Docker映像-“找不到模块json-server”

时间:2019-09-05 14:29:58

标签: javascript docker

我有一个docker-compose尝试启动此映像vimagick/json-server,但是我添加了一些比文档中显示的默认情况稍多的内容,选择传递自己的服务器文件。

json-server:
    image: vimagick/json-server
    command: --host 0.0.0.0 -w db.json -r routes.json -m server.js
    ports:
      - "3000:3000"
    volumes:
      - ./support/json-server/db.json:/data/db.json
      - ./support/json-server/routes.json:/data/routes.json
      - ./support/json-server/server.js:/data/server.js
    restart: always

当我启动docker映像时,日志仅指出:

 Loading server.js
{ Error: Cannot find module 'json-server'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/data/server.js:1:20)

我检查了我是否在本地安装了json服务器,但由于某种原因无法使它正常工作。

任何想法都会受到欢迎。

2 个答案:

答案 0 :(得分:1)

制作一个名为 * * @param str a string to be parsed. * @param delim the delimiters. * @param returnDelims flag indicating whether to return the delimiters * as tokens. * @exception NullPointerException if str is <CODE>null</CODE> */ public StringTokenizer(String str, String delim, boolean returnDelims) { 的文件夹,并将以下文件放入其中:

Dockerfile

./json-server

entrypoint.sh

FROM node:lts-slim

RUN npm install -g json-server

WORKDIR /data
VOLUME /data

EXPOSE 3000
ADD entrypoint.sh /entrypoint.sh
ENTRYPOINT ["bash", "/entrypoint.sh"]
CMD []

./ json / [routes.json,db.json]

如果要传递或观看其他文件等,请在上方进行编辑。

然后在#!/bin/bash args="$@" args="$@ --host 0.0.0.0 --port 3000" file=/data/db.json if [ -f $file ]; then echo "Found $file" args="$args --watch $file" fi echo "json-server $args" json-server $args 中输入类似内容

docker-compose.json

答案 1 :(得分:0)

这里的问题似乎是您通过的事实:

 command: --host 0.0.0.0 -w db.json -r routes.json -m server.js

这将在容器内运行,因此在本地安装json-server不会更改任何内容,如果您可以创建和映像并从vimagick / json-server开始 dockerfile就像:

FROM vimagick/json-server
 ...

并根据需要安装json-server