mongodb - Docker 无法运行入口点
问题描述
所以我创建了一个 node/mongo 应用程序,我正在尝试在 docker 上运行所有内容。
在我尝试将 mongo 实例的 init 文件添加到入口点之前,我可以让一切正常运行。
这是我的 mongo docker 文件:(在 /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"]
推荐阅读
- android - 如果在 CoordinatorLayout 中设置了anchorView,则浮动操作按钮不与 Snackbar 一起浮动
- java - 我无法在我的 android 模拟器中接收 Firebase Cloud Messaging FCM
- macos - 如何在 Mac 上安装 Tesseract 5.0.0 alpha?
- c++ - 如何从启动时最大化cpp程序中的窗口?
- windows - 如何通过单击从 Windows 中的 Go 可执行文件打开特定文件
- kubernetes - 裸机上的 Rook ceph 块存储 - 如何从 pod 中导出文件?
- python - 如何将一串整数转换为 tkinter 中的浮点值列表
- javascript - 用 Jest 只模拟一个“window”属性
- pyqt - 使用 PyQt5 创建上下文菜单
- javascript - 来自网页的 Facebook/instagram 链接在 ios 设备上返回 404