首页 > 解决方案 > 通过环境变量 docker-compose redis 密码

问题描述

我正在尝试docker-compose通过环境变量将我的 redis 密码传递给我,但它给了我一个错误。

这是我的 docker-compose 和 redis 图像的一部分:

  redis:
    image: redis
    container_name: redis
    # command: redis-server --requirepass mypassword <--- this works as expected
    # command: redis-server --requirepass ${REDIS_PASSWORD} <-- this is not
    command: redis-server --requirepass $${REDIS_PASSWORD} <-- and this is not
    volumes:
      - redis:/var/lib/redis/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    ports:
      - "6379"
    env_file:
      - .env.prod

我的.env.prod

REDIS_PASSWORD=mypassword

它给了我一个错误:

consumer: Cannot connect to redis://:**@redis:6379/0: WRONGPASS invalid username-password pair or user is disabled..

但是,如果我直接在 docker-compose 中指定密码而不使用 env 变量,它就可以工作。

标签: docker-composeredisenvironment-variables

解决方案


这应该有效:

    redis:
        image: redis
        command: >
          --requirepass ${REDIS_PASSWORD}

推荐阅读