[redis]定制封装redis的docker镜像

前言

应开发需求,定制封装redis的docker镜像,需要通过环境变量修改redis的密码。

redis.conf

port 6379
requirepass REDIS_PASSWD
daemonize no
protected-mode yes
io-threads-do-reads yes

redis.conf文件配置参数说明。更多参数可参考 官方文档

参数 说明
port redis-server的监听端口
requirepass redis的连接密码
daemonize 是否以后台模式启动,在docker中必须为no
protected-mode 是否开启保护模式
io-threads-do-reads 是否开启io多线程

docker-entrypoint.sh

#!/bin/bash

if [ -n "$REDIS_PASSWD" ]; then
    sed -i "s/REDIS_PASSWD/$REDIS_PASSWD/g"  /etc/redis.conf
fi

/usr/local/bin/redis-server /etc/redis.conf

Dockerfile

FROM redis:7.0.8
LABEL version="7.0.8.1"
LABEL description="add redis password"
ADD docker-entrypoint.sh /
ADD redis.conf /etc/
ENV REDIS_PASSWD="123456"
CMD ["/docker-entrypoint.sh"]

构建

docker build -t redis:7.0.8.1 .

运行示例

version: "3"
services:
  redis:
    image: redis:7.0.8.1
    container_name: redis
    ports:
      - 6379:6379
    environment:
      - REDIS_PASSWD="654321"

使用docker-compose up -d命令创建容器并运行,用客户端带上密码访问测试。

posted @ 2023-02-24 12:01  花酒锄作田  阅读(108)  评论(0编辑  收藏  举报