Laradock 是一组 Laravel 相关的 docker 镜像(服务),可用于启动和运行它。然而,我似乎无法让 redis 开箱即用,无论我尝试什么配置,它都存在身份验证问题。我也从 v7 切换到 v6 并复制了别人的配置文件,但没有成功。
docker-compose up -d apache2 mysql php-fpm redis
“保护模式否”甚至似乎根本不起作用。
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=480
SESSION_SAME_SITE=null
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
上面的默认配置,连接等似乎没问题。
REDIS_PASSWORD=null
结果
NOAUTH Authentication required.
和
REDIS_PASSWORD=foobared
结果
WRONGPASS invalid username-password pair
我无法使用 config:clear,因为它一直抛出相同的错误。
这很奇怪,因为 laradock 基本上是为 laravel 设计的,并且似乎不适用于默认设置。也许我们的项目代码使用不同的身份验证类型/方法?但我没有看到任何地方提到这一点,无论它是否可配置。
我并没有对任何 dockerfiles 或配置进行太多更改,只是添加了一个标准的 apache 配置。
redis.conf
bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass foobared
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
redis Dockerfile
FROM redis:6.0.16
MAINTAINER Mahmoud Zalt <[email protected]>
RUN mkdir -p /usr/local/etc/redis
COPY redis.conf /usr/local/etc/redis/redis.conf
VOLUME /data
EXPOSE 6379
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]
#CMD ["redis-server"]
Redis AUTH 密码位于 laradock 的
.env
文件中
在某些时候,有人添加了 redis 的密码(检查 redis
docker-compose.yml
部分)。
它设置在.env
。
这是默认部分:
### REDIS #################################################
REDIS_PORT=6379
REDIS_PASSWORD=secret_redis
以下对我有用:
我在
docker-compose.yml
中注释掉了带有requirepass的行:
### Redis ################################################
redis:
restart: always
build: ./redis
volumes:
- ${DATA_PATH_HOST}/redis:/data
# command: --requirepass ${REDIS_PASSWORD}
ports:
- ‘${REDIS_PORT}:6379’
networks:
- backend