首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法启动docker镜像-“找不到模块json-server”

无法启动docker镜像-“找不到模块json-server”
EN

Stack Overflow用户
提问于 2019-09-05 22:29:59
回答 2查看 468关注 0票数 0

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

代码语言:javascript
复制
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镜像时,日志只是简单地说明:

代码语言:javascript
复制
 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-server,但由于某些原因无法正常工作。

任何想法都会受到欢迎。

EN

回答 2

Stack Overflow用户

发布于 2019-09-06 00:34:46

创建一个名为./json-server的文件夹,并将以下文件放入其中:

文档文件

代码语言:javascript
复制
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 []

entrypoint.sh

代码语言:javascript
复制
#!/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

Routes.json./json/,db.json

如果你想传递或观看其他文件,请编辑上面的内容。

然后在docker-compose.json中,就像这样

代码语言:javascript
复制
json-server:
   build: ./json-server
   volumes:
     - ./json-server/json/:/data
   ports:
     - 3000:3000
票数 1
EN

Stack Overflow用户

发布于 2019-09-06 00:15:24

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

代码语言:javascript
复制
 command: --host 0.0.0.0 -w db.json -r routes.json -m server.js

这将在容器中运行,所以在本地安装json-server不会改变任何东西,如果你愿意,你可以创建并镜像一个dockerfile,并从vimagick/json-server启动,如下所示:

代码语言:javascript
复制
FROM vimagick/json-server
 ...

如果需要,还可以安装json-server

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57807727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档