所以我创建了一个node / mongo应用程序,我试图在docker上运行所有程序。
在尝试将mongo实例的init文件添加到入口点之前,我可以使一切正常运行。
这是我的mongo码头工人文件:(在/ MongoDB中称为mongo.dockerfile)
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"]
db-init文件夹包含一个init.js文件,看起来像这样(删除了东西的名称):
db.createUser({
user: '',
pwd: '',
roles: [ { role: 'readWrite', db: '' } ]
})
这是我的docker-compose文件:
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
运行a时得到的确切错误docker-compose up
是:
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
我曾经在另一个项目上同时进行过这项工作,但似乎根本无法进行这项工作。
对我在做什么错有任何想法吗?
另请注意,我还看到了其他类似这样的问题:chmod + x路径(尝试不起作用)也尝试chmod 777也不起作用。(也许我做错了,我不知道该怎么办?)
您的入口点已从上游映像进行了修改,目前尚不清楚您提供的输入的方式。您可能已经修改了mongo图像本身,并需要使用来重新复制docker-compose build --pull
。否则,您可以强制入口点回到上游值:
ENTRYPOINT ["docker-entrypoint.sh"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句