0
votes

I have this docker-compose.yml file where I run a mongo container

version: '3'

services:

  appapi:
    container_name: appapi
    image: strapi/strapi:3.1.3
    environment:
      DATABASE_CLIENT: ${APPAPI_DATABASE_CLIENT}
      DATABASE_HOST: ${APPAPI_DATABASE_HOST}
      DATABASE_PORT: ${APPAPI_DATABASE_PORT}
      DATABASE_NAME: ${APPAPI_DATABASE_NAME}
      DATABASE_USERNAME: ${APPAPI_DATABASE_USERNAME}
      DATABASE_PASSWORD: ${APPAPI_DATABASE_PASSWORD}
    ports:
      - 1337:1337
    volumes:
      - ./app:/srv/app
    depends_on:
      - appmongo

  appmongo:
    container_name: appmongo
    image: mongo:4.4.0
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${APPDB_MONGO_INITDB_ROOT_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${APPDB_MONGO_INITDB_ROOT_PASSWORD}
    ports:
      - "27027:27017"
    volumes:
      - ./data/db:/data/db

I want to backup the database running a dump

docker run -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin --rm mongo mongodump --host mongoapp:27027 --archive --gzip | cat > ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz

I tried to modify the previous command but I am not able to connect and do the dump, I am getting

2020-08-15T19:27:04.870+0000 Failed: can't create session: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: mongoapp:27027, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection() : dial tcp: lookup mongoapp on 192.168.65.1:53: no such host }, ] }

1

1 Answers

1
votes

I was able to dump/restore with the following commands

dump

docker exec defymongo sh -c 'mongodump --archive -u {{mongouser}} -p {{mongopass}}' > ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz

restore

docker exec -i defymongo sh -c 'mongorestore --archive -u {{mongouser}} -p {{mongopass}}' < ./mongodumps/dump_$(date '+%d-%m-%Y_%H-%M-%S').gz

The difference is here the commands use sh -c to execute mongorestore and pass parameters with authentication values.

This is not enough to backup Strapi. Probably there are some values inside the /src/app folder in Strapi that should also be backed up

Hopefully this will helps someone else