docker -compose не может выполнить сценарий оболочки - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь инициализировать mongoDb через скрипт оболочки в docker -compose, но получаю ошибку.

docker -compose.yaml file

version: '3.5'

services:
  mongo:
    container_name: mongo_container
    image: mongo
    build:
      context: ./mongoDocker
      dockerfile: db.Dockerfile
    ports:
        - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: rootpwd
      MONGO_INITDB_DATABASE: admin
      MONGO_INITDB_USERNAME: mongoadmin
      MONGO_INITDB_PASSWORD: mongoadminpwd
    restart: unless-stopped

db. Docker file

FROM mongo
COPY init-mongo.sh /docker-entrypoint-initdb.d/

init-mon go. sh file:

mongo -- "$MONGO_INITDB_DATABASE" <<EOF
    var rootUser = '$MONGO_INITDB_ROOT_USERNAME';
    var rootPassword = '$MONGO_INITDB_ROOT_PASSWORD';
    db.auth(rootUser, rootPassword);

    use mydb
    db = db.getSiblingDB('mydb');
    var user = '$MONGO_INITDB_USERNAME';
    var passwd = '$MONGO_INITDB_PASSWORD';
    db.createUser({user: user, pwd: passwd, 
        roles: [
                { role: "userAdmin", db: "mydb" },
                { role: "dbAdmin",   db: "mydb" },
                { role: "readWrite", db: "mydb" }
            ]});
EOF

, затем я выполняю docker -compose и получаю следующую ошибку:

mongo_container | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init-mongo.sh
mongo_container | /docker-entrypoint-initdb.d/init-mongo.sh: line 1: FLOIG06GwRC91ftk2EZRi: unbound variable

Когда я go внутри контейнера и выполняю sh init-mon go. sh, тогда все работает нормально. Это проблема с Docker версией или mon go изображением?

...