3
respostas

Usar volumes mongoDB

Boa tarde, estou com uma dificuldade para implementar o volume do mongoDB no docker-compose, toda vez que reinicio os containers, estou perdendo os dados, ja tentei algumas alternativas, mas sem sucesso. Segue abaixo meu docker-compose

version: '3'
services:
  #------------------------------------------ Servicos Agendamento
  servico-agenda:
    build: 
      dockerfile: ./docker-agenda.dockerfile
      context: .
    image: imagem-agenda
    container_name: servico-agenda
    ports: 
      - 8081:8081
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.10
    depends_on: 
      - mongo-agenda
  #--------------------------------------- Container Mongo Agenda
  mongo-agenda:
    image: mongo
    container_name: mongo-agenda
    command: mongod --smallfiles --logpath=/dev/null # --quiet
    volumes:
      - ./data/db
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.40
  #----------------------------------------------------------------------------------------------------------------------------------------------  

  #--------------------------------------------- Servico Cliente
  servico-cliente:
    build: 
      dockerfile: ./docker-cliente.dockerfile
      context: .
    image: imagem-cliente
    container_name: servico-cliente
    ports: 
      - 8082:8082
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.20
    depends_on: 
      - mongo-cliente    
  #--------------------------------------- Container Mongo Cliente
  mongo-cliente:
    image: mongo
    container_name: mongo-cliente
    command: mongod --smallfiles --logpath=/dev/null # --quiet
    volumes:
      - ./data/db   
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.50
  #----------------------------------------------------------------------------------------------------------------------------------------------

  #------------------------------------------ Servico Sala
  servico-sala:
    build: 
      dockerfile: ./docker-sala.dockerfile
      context: .
    image: imagem-sala
    container_name: servico-sala
    ports: 
      - 8083:8083
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.60
  #--------------------------------------- Container Mongo sala
  mongo-sala:
    image: mongo
    container_name: mongo-sala
    command: mongod --smallfiles --logpath=/dev/null # --quiet
    volumes:
      - ./data/db
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.70
#----------------------------------------------------------------------------------------------------------------------------------------------


  #------------------------------------------ Servico gateway
  servico-gateway:
    build: 
      dockerfile: ./docker-gateway.dockerfile
      context: .
    image: imagem-gateway
    container_name: servico-gateway
    ports: 
      - 9091:9091
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.101

  #------------------------------------------ Servico gateway
  servico-discovery:
    build: 
      dockerfile: ./docker-discovery.dockerfile
      context: .
    image: imagem-discovery
    container_name: servico-discovery
    ports: 
      - 9090:9090
    networks: 
      agendamento-network:
        ipv4_address: 192.168.0.100

networks: 
  agendamento-network:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.0.0/24
3 respostas

Cesar, tudo bem? Que sistema operacional você está usando como Host? Pergunto isso por que dependendo do caso, a própria imagem do Docker comenta sobre a não possibilidade de usar o volume.

https://hub.docker.com/_/mongo

Boa tarde Wanderson, tudo bem e contigo? Estou usando ubuntu 18.04

Então Cesar, como destino do Volume, você colocou ./data/db. É um caminho relativo. Aqui a pergunta que fica é: relativo a quê? Acredito que o volume esteja sendo criado mas não para os dados do mongo.

Tenta trocar para o caminho absoluto como a documentação comenta: /data/db.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software