【问题标题】:How to access entrypoint.sh values in my docker-compose file?如何访问我的 docker-compose 文件中的 entrypoint.sh 值?
【发布时间】:2020-02-27 12:38:02
【问题描述】:

如何访问 docker-compose 文件中的 entrypoint.sh 值。我已经声明了 entrypoint.sh 中的所有值,如下所示。我需要访问我的 docker-compose 文件中的那些

我已经使用 docker-volumes 将 entrypoint.sh 脚本复制到 docker 容器中的 /usr/local/bin 目录。

entrypoint.sh 脚本

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

码头工人撰写文件

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.

【问题讨论】:

    标签: docker-compose dockerfile entry-point docker-entrypoint


    【解决方案1】:

    您忘记导出环境变量:

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

    更新1:

    首先创建一个.env 文件,然后将其添加到您的docker 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}
    

    【讨论】:

    • 我想访问在 bash 脚本 entrypoint.sh 中声明的变量,以便在 docker-compose 中访问。我尝试导出,但 docker-compose.yaml 文件没有读取 entrypoint.sh bash 脚本中提供的值。
    • 发布更新,创建 env 文件,然后将其添加到您的 docker-compose
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2022-12-07
    相关资源
    最近更新 更多