【问题标题】:Multicontainer Docker application failing on deploy多容器 Docker 应用程序部署失败
【发布时间】:2018-11-07 02:38:31
【问题描述】:

所以我在将我的应用程序部署到 Amazon 的弹性 beanstalk 时遇到了问题。我的应用程序是一个多容器 Docker 应用程序,其中包括节点服务器和 mongoDB。不知何故,应用程序每次都会崩溃,我从 mongoDB 得到这个奇怪的错误。 错误如下:

18-05-28T12:53:02.510+0000 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 3867 processes, 32864 files. Number of processes should be at least 16432 : 0.5 times number of files.
2018-05-28T12:53:02.540+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2018-05-28T12:53:02.541+0000 I NETWORK  [initandlisten] waiting for connections on port 27017
2018-05-28T12:53:03.045+0000 I CONTROL  [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2018-05-28T12:53:03.045+0000 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...
2018-05-28T12:53:03.045+0000 I NETWORK  [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2018-05-28T12:53:03.045+0000 I FTDC     [signalProcessingThread] Shutting down full-time diagnostic data capture
2018-05-28T12:53:03.047+0000 I STORAGE  [signalProcessingThread] WiredTigerKVEngine shutting down
2018-05-28T12:53:03.161+0000 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
2018-05-28T12:53:03.161+0000 I CONTROL  [signalProcessingThread] now exiting
2018-05-28T12:53:03.161+0000 I CONTROL  [signalProcessingThread] shutting down with code:0

这是我的 Dockerrun.aws.json 文件:

{
  "AWSEBDockerrunVersion": 2,
  "volumes":[
    {
      "name": "mongo-app",
      "host": {
        "sourcePath": "/var/app/mongo-app"
      }
    },
    {
      "name": "some-api",
      "host": {
        "sourcePath": "/var/app/some-api"
      }
    }
  ],
  "containerDefinitions": [
      {
        "name": "mongo-app",
        "image": "mongo:latest",
        "memory": 128,
        "portMappings": [
          {
            "hostPort": 27017,
            "containerPort": 27017
          }
        ],
        "mountPoints": [
          {
            "sourceVolume": "mongo-app",
            "containerPath": "/data/db"
          }
        ]
      },
      {
        "name": "server",
        "image": "node:8.11",
        "memory": 128,
        "portMappings": [
          {
            "hostPort": 80,
            "containerPort": 8001
          }
        ],
        "links": [
          "mongo-app"
        ],
        "mountPoints":[
          {
            "sourceVolume": "some-api",
            "containerPath": "/some-data"
          }
        ]
      }
  ]
}

这是我的 Dockerfile:

FROM node:8.11
RUN mkdir -p /api
WORKDIR /api
COPY package.json /api
RUN cd /api && npm install
COPY . /api
EXPOSE 8001
CMD ["node", "api/app.js"]

任何想法为什么应用程序崩溃并且没有部署?在我看来是 mongoDB 导致了问题,但我无法理解或找到问题的根源。

提前谢谢你!

【问题讨论】:

    标签: node.js mongodb docker amazon-elastic-beanstalk


    【解决方案1】:

    我也花了一段时间试图弄清楚这一点。

    解决方案:为"containerPath": "/data/configdb" 添加一个挂载点。 Mongo 希望能够同时写信给/data/db/data/configdb

    另外,您可能希望将 Mongo 的 "memory": 128 提升到更高的级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 2023-03-15
      • 2021-07-19
      • 2020-06-01
      • 2016-10-06
      • 2021-04-09
      • 2017-02-05
      相关资源
      最近更新 更多