无法 运行 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