使用node.js和MongoDB对Web App进行Docker化时的代码14

时间:2019-02-05 15:46:13

标签: node.js mongodb docker express dockerfile

我正在尝试对使用node.js和MongoDB构建的Web应用程序进行Docker化,但是当我运行时 码头工人组成 我收到以下错误:

$ docker-compose up
  

使用默认驱动程序创建网络“ nodeapp1_default”   mongo ...完成创建应用程序...完成附加到mongo,应用程序mongo
  | 2019-02-05T15:02:34.925 + 0000 I CONTROL [main]自动   禁用TLS 1.0,以强制启用TLS 1.0指定   --sslDisabledProtocols'none'蒙哥语| 2019-02-05T15:02:34.934 + 0000 I CONTROL [initandlisten] MongoDB开始:pid = 1 port = 27017   dbpath = / data / db 64位主机= e4fb5b7aa837 mongo |   2019-02-05T15:02:34.934 + 0000 I CONTROL [initandlisten]数据库版本   v4.0.5 mongo | 2019-02-05T15:02:34.935 + 0000我控制   [initandlisten] git版本:3739429dd92b92d1b0ab120911a23d50bf03c412   mongo | 2019-02-05T15:02:34.935 + 0000 I CONTROL [initandlisten]   OpenSSL版本:OpenSSL 1.0.2g 2016年3月1日   2019-02-05T15:02:34.935 + 0000 I CONTROL [initandlisten]分配器:   tcmalloc mongo | 2019-02-05T15:02:34.936 + 0000我控制   [initandlisten]模块:无mongo | 2019-02-05T15:02:34.936 + 0000   我控制[initandlisten]构建环境:mongo |   2019-02-05T15:02:34.936 + 0000 I CONTROL [initandlisten] distmod:   ubuntu1604 mongo | 2019-02-05T15:02:34.937 + 0000我控制   [initandlisten] distarch:x86_64 mongo |   2019-02-05T15:02:34.937 + 0000 I CONTROL [initandlisten]
  target_arch:x86_64 mongo | 2019-02-05T15:02:34.937 + 0000我控制   [initandlisten]选项:{net:{bindIpAll:true}} mongo |   2019-02-05T15:02:34.941 + 0000 I存储[initandlisten]   wiretiger_open配置:   创建,cache_size = 256M,session_max = 20000,逐出=(threads_min = 4,threads_max = 4),config_base = false,statistics = [fast),log =(enabled = true,archive = true,path = journal,压缩机= snappy ),file_manager = {close_idle_time = 100000),statistics_log = {wait = 0},verbose = {recovery_progress},   mongo | 2019-02-05T15:02:36.060 + 0000 E STORAGE [initandlisten]   WiredTiger错误(17)[1549378956:60130] [1:0x7f0c375e0a40],   连接:__ posix_open_file,715:/data/db/WiredTiger.wt:   handle-open:打开:文件存在Raw:   [1549378956:60130] [1:0x7f0c375e0a40],连接:__posix_open_file,   715:/data/db/WiredTiger.wt:处理打开:打开:文件存在mongo |   2019-02-05T15:02:36.066 + 0000 E STORAGE [initandlisten] WiredTiger   错误(26)[1549378956:66441] [1:0x7f0c375e0a40],连接:   __posix_fs_rename,253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:重命名:文本文件忙Raw:   [1549378956:66441] [1:0x7f0c375e0a40],连接:__posix_fs_rename,   253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:   重命名:文本文件忙mongo | 2019-02-05T15:02:36.077 + 0000 E   存储[initandlisten] WiredTiger错误(17)   [1549378956:77316] [1:0x7f0c375e0a40],连接:__posix_open_file,   715:/data/db/WiredTiger.wt:处理打开:打开:文件存在原始:   [1549378956:77316] [1:0x7f0c375e0a40],连接:__posix_open_file,   715:/data/db/WiredTiger.wt:处理打开:打开:文件存在mongo |   2019-02-05T15:02:36.078 + 0000 E STORAGE [initandlisten] WiredTiger   错误(26)[1549378956:78533] [1:0x7f0c375e0a40],连接:   __posix_fs_rename,253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:重命名:文本文件忙Raw:   [1549378956:78533] [1:0x7f0c375e0a40],连接:__posix_fs_rename,   253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:   重命名:文本文件忙mongo | 2019-02-05T15:02:36.090 + 0000 E   存储[initandlisten] WiredTiger错误(17)   [1549378956:90882] [1:0x7f0c375e0a40],连接:__posix_open_file,   715:/data/db/WiredTiger.wt:处理打开:打开:文件存在原始:   [1549378956:90882] [1:0x7f0c375e0a40],连接:__posix_open_file,   715:/data/db/WiredTiger.wt:处理打开:打开:文件存在mongo |   2019-02-05T15:02:36.092 + 0000 E STORAGE [initandlisten] WiredTiger   错误(26)[1549378956:92202] [1:0x7f0c375e0a40],连接:   __posix_fs_rename,253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:重命名:文本文件忙Raw:   [1549378956:92202] [1:0x7f0c375e0a40],连接:__posix_fs_rename,   253:/data/db/WiredTiger.wt到/data/db/WiredTiger.wt.1:文件重命名:   重命名:文本文件忙mongo | 2019-02-05T15:02:36.094 + 0000 W   存储[initandlisten]在以下任何情况下无法启动WiredTiger   兼容版本。 mongo | 2019-02-05T15:02:36.094 + 0000 F   存储[initandlisten]原因:26:文本文件忙   2019-02-05T15:02:36.094 + 0000 F-[initandlisten]致命的   断言28595在   src / mongo / db / storage / wiredtiger / wiredtiger_kv_engine.cpp 638 mongo
  | 2019-02-05T15:02:36.094 + 0000 F-[initandlisten] mongo |   mongo | *** fassert()失败后终止mongo |   mongo退出,代码为14

这是我的Dockerfile:

  

FROM节点:8

     

WORKDIR / usr / src / app

     

COPY包* .json ./

     

运行npm install

     

复制。

     

EXPOSE 3000 CMD [“ npm”,“开始”]

和我的docker-compose.yml文件:

  

版本:“ 2”服务:应用程序:       container_name:应用       重启:总是       建立:。       端口:         -“ 3000:3000”       链接:         -mongo mongo:       container_name:mongo       图片:蒙哥       数量:         -./data:/data/db       端口:         -“ 27017:27017”

该问题似乎来自某个名为WhiteTiger.wt的文件。我曾尝试从项目目录的数据目录中删除此文件,但这没有用。有人遇到过这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我假设您正在Windows上运行Docker,如果是这样,我也遇到了同样的问题,并在以下帖子中找到了答案:

Windows Docker mongo container doesn't work with volume mount

问题是该卷装入被指定为主机卷。我通过将卷安装更改为命名卷来解决了问题。如果需要使用主机,则可以使用在我链接的问题的答案中指定的rsync工具。

我的docker-compose.yml文件

version: '3'
services:

  mongodb1:
    image: mongo:latest
    restart: always
    volumes:
      - data1:/data/db
      - config1:/data/configdb
    ports:
      - 30001:27017
    entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]
volumes:
  data1:
  config1: