【问题标题】:Docker/Mongodb data not persistentDocker/Mongodb 数据不持久
【发布时间】:2018-06-19 13:43:28
【问题描述】:

我正在运行一个带有 mongodb 的 rails api 服务器,所有这些都运行良好,我开始将我的服务器移动到 docker 中。

不幸的是,每当我停止服务器(docker-compose down)并重新启动它时,所有数据都会丢失并且数据库完全是空的。

这是我的 docker-compose 文件:

version: '2'
services:
  mongodb:
    image: mongo:3.4
    command: mongod
    ports:
      - "27017:27017"
    environment:
      - MONGOID_ENV=test
    volumes:
      - /data/db

  api:
    build: .
    depends_on:
      - 'mongodb'
    ports:
      - "3001:3001"
    command: bundle exec rails server -p 3001 -b '0.0.0.0'
    environment:
      - RAILS_ENV=test
    links:
      - mongodb

这是我的 dockerfile:

FROM ruby:2.5.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

ENV APP_HOME /app

RUN mkdir $APP_HOME

WORKDIR $APP_HOME

COPY Gemfile* $APP_HOME/
RUN bundle install

COPY . $APP_HOME

RUN chown -R nobody:nogroup $APP_HOME
USER nobody

ENV RACK_ENV test
ENV MONGOID_ENV test

EXPOSE 3001

知道这里缺少什么吗?

谢谢, 迈克尔

【问题讨论】:

    标签: mongodb docker docker-compose


    【解决方案1】:

    在 docker-compose 中,我认为您在 mongodb 服务中的“volumes”字段不太正确。我觉得

    volumes:
      - /data/db
    

    应该是:

    volumes:
      - ./localFolder:/data/db
    

    【讨论】:

    • 我只是想添加此错误消息:api_1 | /nonexistent 不是目录。 api_1 | Bundler 将临时使用 `/tmp/bundler/home/unknown' 作为您的主目录。因为我虽然这可能导致了这个问题。知道为什么我会收到此消息吗?
    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 2019-05-21
    • 2022-11-27
    • 2017-01-03
    • 1970-01-01
    • 2021-12-03
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多