Как получить доступ к значениям entrypoint.sh в моем файле docker-compose?

Как получить доступ к значениям entrypoint.sh в файле docker-compose. Я объявил все значения в entrypoint.sh, как показано ниже. Мне нужно получить доступ к ним в моем файле docker-compose

Я использовал docker-volume для копирования скрипта entrypoint.sh в каталог / usr / local / bin в контейнере докера.

сценарий entrypoint.sh

MONGO_ROOT_USERNAME=root
MONGO_ROOT_PASSWORD=mongo@123
MONGO_EXPRESS_USERNAME=root
MONGO_EXPRESS_PASSWORD=express@123

файл docker-compose

mongo-express:
    image: mongo-express
    ports:
      - 8081:8081
    volumes:
      - "./docker-scripts/entrypoint.sh:/usr/local/bin"
    environment:
      ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_EXPRESS_USERNAME}
      ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_EXPRESS_PASSWORD}
      ME_CONFIG_MONGODB_PORT: 27017
      ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ROOT_USERNAME}
      ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ROOT_PASSWORD}

Но когда я запускаю docker-compose -d, я получаю это сообщение

WARNING: The MONGO_ROOT_USERNAME variable is not set. Defaulting to a blank string.
WARNING: The MONGO_ROOT_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MONGO_EXPRESS_USERNAME variable is not set. Defaulting to a blank string.
WARNING: The MONGO_EXPRESS_PASSWORD variable is not set. Defaulting to a blank string.

person jeril    schedule 27.02.2020    source источник


Ответы (1)


вы забыли экспортировать свои переменные env:

export MONGO_ROOT_USERNAME=root
export MONGO_ROOT_PASSWORD=mongo@123
export MONGO_EXPRESS_USERNAME=root
export MONGO_EXPRESS_PASSWORD=express@123

Обновление1:

Итак, сначала создайте файл .env, а затем добавьте его в свой докер compose.

.env

MONGO_ROOT_USERNAME=root
MONGO_ROOT_PASSWORD=mongo@123
MONGO_EXPRESS_USERNAME=root
MONGO_EXPRESS_PASSWORD=express@123

Затем на docker-compose.yml

mongo-express:
    image: mongo-express
    ports:
      - 8081:8081
    volumes:
      - "./docker-scripts/entrypoint.sh:/usr/local/bin"
     env_file:  # <-- Add this line
      - .env    # <-- Add this line
    environment:
      ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_EXPRESS_USERNAME}
      ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_EXPRESS_PASSWORD}
      ME_CONFIG_MONGODB_PORT: 27017
      ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ROOT_USERNAME}
      ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ROOT_PASSWORD}
person Jean-Jacques MOIROUX    schedule 27.02.2020
comment
Я хочу получить доступ к переменным, объявленным в bash script entrypoint.sh, чтобы они были доступны в docker-compose. Я пробовал использовать экспорт, но файлы docker-compose.yaml не считывают значения, указанные в bash-скрипте entrypoint.sh. - person jeril; 28.02.2020
comment
Опубликуйте обновленные, создайте файл env, затем добавьте его в свой docker-compose - person Jean-Jacques MOIROUX; 28.02.2020