Docker-compose and mongoDB: Failed to start up WiredTiger under any compatibility version?
Asked Answered
D

4

8

I have the following docker-compose file:

version: "3"

services:

    #
    # APIs
    #----------------------------------------------
       pokerstats:
        image: pokerstats
        container_name: pokerstats
        ports:
          - 8080:8080
        depends_on: 
          - db

    #
    # Utilities
    #----------------------------------------------
      db:
        image: mongo
        container_name: mongo
        volumes:
          - ./data/db:/data/db
        ports:
          - "27018:27017"
        environment:
          MONGO_INITDB_ROOT_USERNAME: admin
          MONGO_INITDB_ROOT_PASSWORD: admin
          MONGO_INITDB_DATABASE: pokerStats

This was working fine before I added volumes. However not when I run: docker-compose up -d the mongo container stops immediately and in the logs I see the error:

2020-04-10T19:17:17.313+0000 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1457M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-10T19:17:17.772+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.784+0000 E  STORAGE  [initandlisten] WiredTiger error (17) [1586546237:784001][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1586546237:784001][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists
2020-04-10T19:17:17.785+0000 I  STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.1
2020-04-10T19:17:17.788+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:788283][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:788283][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.799+0000 E  STORAGE  [initandlisten] WiredTiger error (17) [1586546237:799215][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1586546237:799215][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists
2020-04-10T19:17:17.801+0000 I  STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.2
2020-04-10T19:17:17.803+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:803211][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:803211][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.805+0000 W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
2020-04-10T19:17:17.806+0000 F  STORAGE  [initandlisten] Reason: 1: Operation not permitted
2020-04-10T19:17:17.806+0000 F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 860

How can I resolve this? I want a mongo volume that will keep my data persisted if the container goes down.

Edit: for reference I am running docker desktop 2.2.0.3 on a Windows 10 Pro machine.

Decortication answered 10/4, 2020 at 19:23 Comment(3)
did you check permissions in your local shared folder?Clementina
@Clementina no I have not how can I do so? I am running on Windows 10 Pro if that makes a difference? SDecortication
@Clementina I believe I have fixed it now - please see my answer belowDecortication
D
24

I was able to solve this issue by added a volume to my docker-compose file and referencing it in the mongo section of the compose file as follows:

  db:
    image: mongo
    container_name: mongo
    volumes:
      - mongodata:/data/db
    ports:
      - "27018:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: golfStats

volumes:
  mongodata:
Decortication answered 10/4, 2020 at 20:8 Comment(3)
Can you explain what this does ?Frenchify
@DavutGürbüz I've had the same issue after updating docker on my Mac, and this worked for me. Apparently, it has something to do with how Docker accesses the disk in volumes (the solution) vs bind mounts (the original compose file)Arratoon
is the storage still persistent with this method?Ebby
E
0

I have some issue when I'm using windows 10. It worked at the first time.

docker run -d -p 27017:27017 -v /c/mongo_data:/data/db --name=container-mongodb mongo

After stopping container container-mongodb, it failed when I try to start container container-mongodb again.

docker stop container-mongodb
docker start container-mongodb
docker logs container-mongodb
{"t":{"$date":"2021-10-09T09:40:38.082+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:82174][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}
{"t":{"$date":"2021-10-09T09:40:38.098+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:98526][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}
{"t":{"$date":"2021-10-09T09:40:38.115+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:115018][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}

The solution is quite similar. you need to define a docker volume, And use the volume mongodata (replace the path /c/mongo_data). It works when I want to start docker again.

docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db --name=container-mongodb mongo

For more detail refer to Windows mount /data/db

Environment answered 9/10, 2021 at 10:13 Comment(0)
P
0

Haven't dug deeper to understand why my trial worked, but was following a tutorial and my docker-compose file had:

mongo:
  image: mongo:4.2.8

Ran docker image inspect <existing_mongo_image_id> and the version I had was the latest i.e. "MONGO_VERSION=5.0.6".

Changing my compose file to reflect this version solved my problem i.e.

 mongo:
  image: mongo:5.0.6
Pia answered 25/2, 2022 at 2:36 Comment(0)
H
0

I got same error while trying to create new docker instance

I fixed by deleting old mongo data files

rm -rf /var/lib/mongodb

after this, try running the docker.

Hypoploid answered 3/3, 2023 at 16:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.