美文网首页Java 杂谈
redis 启动报 Can't open the log

redis 启动报 Can't open the log

作者: 划破的天空 | 来源:发表于2019-07-07 00:46 被阅读2次

    原文链接

    在使用docker-compose安装redis的时候,启动失败,提示无法开发日志文件,这主要是容器中没有对应的日志文件造成的,另一点就是对应的日志文件没有相应权限所导致,异常信息如下所示

    *** FATAL CONFIG FILE ERROR ***
    Reading the configuration file, at line 103
    >>> 'logfile /var/log/redis/redis.log'
    Can't open the log file: No such file or directory
    

    这个提示里面的/var/log/redis/redis.log日志文件指的是容器中的文件,千万别理解为宿主机中的路径,如果你在宿主机创建此文件并授权,最后结果也是一样的,理解这一点很重要。

    相关docker-compse.yml配置如下

    version: '3'
    services:
      redis:  
        hostname: redis
        image: redis:latest
        container_name: redis
        restart: unless-stopped
        command: redis-server /etc/redis.conf
        environment:
            - TZ=Asia/Shanghai # 时区设置
        volumes:
            - /etc/localtime:/etc/localtime:ro # 时区设置
            - ./data:/data  # redis 数据存储目录
            - ./redis.conf:/etc/redis.conf # redis配置文件
        ports:
            - "6379:6379"
    

    为了方面随时修改redis配置,所以将配置文件进行了映射,redis中日志文件的配置项如下:

    # Specify the log file name. Also the empty string can be used to force
    # Redis to log on the standard output. Note that if you use standard
    # output for logging but daemonize, logs will be sent to /dev/null
    logfile "/var/log/redis/redis.log"
    

    启动的时候就提示上述错误了,要解决这个问题有两种方案

    方案一

    直接将redis.conf中的logfile配置注释掉或者设置为空就可以了,但是这样就不会输出日志了,如果有问题需要排查就不方面了。

    方案二

    在宿主机的./data目录下创建redis.log文件并授予权限,当前redis安装的绝对路径为/home/local/docker/redis,以下都是指的相对路径

    touch data/redis.log
    
    chmod 777 data/redis.log
    

    修改日志相关配置,这样容器中就会自动创建日志文件并授予权限了

    logfile "/data/redis.log"
    

    重新构建并查看日志应该都正常了

    docker-compose up --build -d
    
    docker logs redis
    

    相关文章

      网友评论

        本文标题:redis 启动报 Can't open the log

        本文链接:https://www.haomeiwen.com/subject/ayjvhctx.html