无法 运行 docker 编写脚本
Unable to run a script inside docker compose
我有一个 docker 撰写文件,该文件将启动 mongo 服务。我想要做的是,一旦它启动服务,我想创建一个名为 'abc' 的数据库,并在其中创建一个集合 'xyz'。
这是我目前尝试过的方法
docker-编写文件
services:
database:
image: mongo
ports:
- 27017:27017
command: sh initialSetup.sh
我收到以下错误
不确定为什么无法打开脚本
initialSetup.sh 文件
#!/bin/sh
mongo < mongoInitialSetup.js
和
mongoInitialSetup.js
conn = new Mongo();
db = db.getSiblingDB('abc');
db.createCollection('xyz', {});
附加组件:如果有人可以帮助我仅使用 bash 脚本而不使用 js 文件来完成此操作,那就太好了
提前致谢
以下解决方案有效
services:
database:
image: mongo
env_file: .env
ports:
- 27017:27017
environment:
MONGO_INITDB_DATABASE: ${DATABASE_NAME}
volumes:
- ./initialSetup.sh:/docker-entrypoint-initdb.d/initialSetup.sh
并且在 initialSetup.sh 中,我有
mongo -- "$MONGO_INITDB_DATABASE" <<EOF
db.createCollection('images', {});
EOF
我有一个 docker 撰写文件,该文件将启动 mongo 服务。我想要做的是,一旦它启动服务,我想创建一个名为 'abc' 的数据库,并在其中创建一个集合 'xyz'。
这是我目前尝试过的方法
docker-编写文件
services:
database:
image: mongo
ports:
- 27017:27017
command: sh initialSetup.sh
我收到以下错误
不确定为什么无法打开脚本
#!/bin/sh
mongo < mongoInitialSetup.js
和 mongoInitialSetup.js
conn = new Mongo();
db = db.getSiblingDB('abc');
db.createCollection('xyz', {});
附加组件:如果有人可以帮助我仅使用 bash 脚本而不使用 js 文件来完成此操作,那就太好了
提前致谢
以下解决方案有效
services:
database:
image: mongo
env_file: .env
ports:
- 27017:27017
environment:
MONGO_INITDB_DATABASE: ${DATABASE_NAME}
volumes:
- ./initialSetup.sh:/docker-entrypoint-initdb.d/initialSetup.sh
并且在 initialSetup.sh 中,我有
mongo -- "$MONGO_INITDB_DATABASE" <<EOF
db.createCollection('images', {});
EOF