docker-compos配置springboot,redis

docker-compose配置好mysql、redis和后端,后端跑起来后一直报错:

问题一:

Connection refused: localhost/127.0.0.1:6379

问题二:

io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required

先是编辑了后端中application-redis.yml文件,

spring:
  redis:
#   redis服务器地址
    host: ${REDIS_HOST}
#   redis服务器连接端口
    port: ${REDIS_PORT}
#   连接超时时间(毫秒)
    timeout: ${REDIS_TIMEOUT}
#   redis服务器连接密码(默认为空)
    password: ${REDIS_PASSWORD}
    pool:
#      连接池最大连接数(使用负值表示没有限制)
      max-active: ${REDIS_MAX_ACTIVE}
#      连接池中的最小空闲连接
      min-idle: ${REDIS_MIN_IDLE}
#     连接池中的最大空闲连接
      max-idle: ${REDIS_MAX_IDLE}
#     连接池最大阻塞等待时间(使用负值表示没有限制)
      max-wait: ${REDIS_MAX_WAIT}

然后在docker-compose.yml文件中使用插值法

 cxcy-v5:
    restart: always
    image: 
    environment:
      DB_HOST: mysql
      DB_PORT: 3306
      DB_USER: root
      DB_PASS: 
      DB_NAME: chuangye_v6
      REDIS_HOST: redis
      REDIS_PORT: 6379
      REDIS_TIMEOUT: 5000
      REDIS_PASSWORD: 123456
      REDIS_MAX_ACTIVE: 0
      REDIS_MIN_IDLE: 0
      REDIS_MAX_IDLE: 8
      REDIS_MAX_WAIT: 1
    depends_on:
      - mysql
      - redis

 但是没用,最后将docker-compose.yml改成

cxcy-v5:
    restart: always
    image: 
    environment:
      spring.datasource.host: mysql
      spring.redis.host: redis          #解决问题一
      spring.redis.password: 123456     #解决问题二
      DB_HOST: mysql
      DB_PORT: 3306
      DB_USER: root
      DB_PASS: 
      DB_NAME: chuangye_v6
      REDIS_HOST: redis
      REDIS_PORT: 6379
      REDIS_TIMEOUT: 5000
      REDIS_PASSWORD: 123456
      REDIS_MAX_ACTIVE: 0
      REDIS_MIN_IDLE: 0
      REDIS_MAX_IDLE: 8
      REDIS_MAX_WAIT: 1
    depends_on:
      - mysql
      - redis

终于成功,对应redis容器的docker-compose配置为

redis:
    restart: always
    image: redis:alpine
    command: redis-server --save 600 1000 --requirepass 123456
    ports:
      - 6379:6379
    volumes:
      - ./redis:/data


版权声明:本文为tianyuzui6原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。