用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
也不执行
估计你的Dockerfile有问题。
apk
是Alpine Linux 下的包管理命令,但Alpine下没有usermod
指令的,所以你的image构建时我猜会报错的,请检查并把报错放上来看看。