此镜像仅用于开发/测试环境, 生产环境需开启AOF持久化配置
entrypoint.sh
bash
#!/bin/sh
set -e
REDIS_PASSWORD=${REDIS_PASSWORD:-}
if [ -n "$REDIS_PASSWORD" ]; then
echo "Starting redis-server..."
exec redis-server /etc/redis.conf --requirepass "$REDIS_PASSWORD"
else
exec redis-server /etc/redis.conf
fi
Dockerfile
shell
FROM alpine:3.15
LABEL maintainer="257574329@qq.com"
RUN apk add --no-cache redis \
&& sed 's/^bind /# bind /' -i /etc/redis.conf \
&& sed 's/^logfile /# logfile /' -i /etc/redis.conf \
&& sed 's/^daemonize yes/daemonize no/' -i /etc/redis.conf \
&& sed 's/^protected-mode yes/protected-mode no/' -i /etc/redis.conf \
&& sed 's/^unixsocket /# unixsocket /' -i /etc/redis.conf \
&& sed 's/^unixsocketperm /# unixsocketperm /' -i /etc/redis.conf \
&& mkdir -p /var/lib/redis /var/log/redis \
&& chown -R redis:redis /var/lib/redis /var/log/redis \
&& rm -rf /var/cache/apk/* /tmp/*
COPY entrypoint.sh /sbin/entrypoint.sh
RUN chmod 755 /sbin/entrypoint.sh
EXPOSE 6379
ENTRYPOINT ["/sbin/entrypoint.sh"]
build
bash
docker build -t alpine-redis:6.2 .
running
bash
mkdir -p /data/redis/{data, logs} && cd /data/redis
docker run --name redis \
-v $(pwd)/data:/var/lib/redis \
-v $(pwd)/logs:/var/log/redis \
-e REDIS_PASSWORD=123456
-p 6379:6379 -d alpine-redis:6.2