Garret Harp
Garret Harp

Reputation: 70

Docker failed to run entry-point

So I have created a node/mongo app and I am trying to run everything on docker.

I can get everything to run just fine until I try and add the init file for the mongo instance into the entry-point.

Here is my docker file for mongo: (Called mongo.dockerfile in /MongoDB)

FROM mongo:4.2

WORKDIR /usr/src/mongo

VOLUME /docker/volumes/mongo /user/data/mongo

ADD ./db-init /docker-entrypoint-initdb.d

CMD ["mongod", "--auth"]

The db-init folder contains an init.js file that looks like so (removed the names of stuff):

db.createUser({
    user: '',
    pwd: '',
    roles: [ { role: 'readWrite', db: '' } ]
})

Here is my docker-compose file:

version: "3.7"
services:
  web:
    container_name: web
    env_file:
      - API/web.env
    build:
      context: ./API
      target: prod
      dockerfile: web.dockerfile
    ports:
      - "127.0.0.1:3000:3000"
    depends_on:
    - mongo
    links:
      - mongo
    restart: always
  mongo:
    container_name: mongo
    env_file:
      - MongoDB/mongo.env
    build:
      context: ./MongoDB
      dockerfile: mongo.dockerfile
    restart: always

The exact error I get when running a docker-compose up is:

ERROR: for mongo Cannot start service mongo: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"docker-entrypoint-initdb.d\": executable file not found in $PATH": unknown

I had this working at one point with another project but cannot seem to get this on to work at all.

Any thoughts on what I am doing wrong?

Also note I have seen other issues like this saying to chmod +x the path (tried that didnt work) Also tried to chmod 777 also didnt work. (Maybe I did this wrong and I dont know exactly what to run this on?)

Upvotes: 0

Views: 693

Answers (1)

BMitch
BMitch

Reputation: 264841

Your entrypoint has been modified from the upstream image, and it's not clear how from the input you've provided. You may have modified the mongo image itself and need to pull a fresh copy with docker-compose build --pull. Otherwise, you can force the entrypoint back to the upstream value:

ENTRYPOINT ["docker-entrypoint.sh"]

Upvotes: 1

Related Questions