docker redis配置文件redis.conf无法启动

用docker搭建reids指定配置文件,如果使用docker run方式来设置,配置文件redis.conf是生效的:

docker run -d -ti \
-p 6379:6379 \
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
--restart always \
--name pos_redis \
redis:3.0.6 \
redis-server /etc/redis/redis.conf

但是用docker-compose加dockerfile的方式,配置文件就不会生效,自动使用了默认配置文件:
docker-compose.yml

version: "3"
services:
    redis:
        container_name: redis_service
        build:
            context: ./redis
            dockerfile: Dockerfile
        ports:
            - "6379:6379"
        volumes:
            - /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf
        networks:
            - "net1"
networks:
    net1:
        driver: bridge

dockerfile

FROM redis:3.0.6
ENV TIME_ZONE Asia/Shanghai
RUN usermod -u 1000 www-data \
&& apk add --no-cache tzdata \
&& echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \
&& redis-server /etc/redis/redis.conf

这两种方式运行命令效果有什么不一样?
—————————————————————————
补充,使用
ENTRYPOINT redis-server /etc/redis/redis.conf
也不执行

阅读 6.5k
1 个回答

估计你的Dockerfile有问题。
apk是Alpine Linux 下的包管理命令,但Alpine下没有usermod指令的,所以你的image构建时我猜会报错的,请检查并把报错放上来看看。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题