注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 容器服务

redis镜像示例

更新时间:2016/01/28 访问次数:31309
文件名称 说明
dockfile docker镜像构建描述文件
start ews镜像启动脚本
check ews镜像健康检查脚本

制作redis镜像的dockfile如下:

1
2
3
4
5
6
7
8
9
10
11
12
FROM registry.acs.aliyun.com/open/centos:3.0.0
    
RUN cd /acs/user && wget http://download.redis.io/releases/redis-3.0.0.tar.gz && \
    tar xzf redis-3.0.0.tar.gz  && \
    rm -fr redis-3.0.0.tar.gz && mv redis-3.0.0 redis  && \
    cd redis && make test && make && \
    echo "export PATH=$PATH:/acs/user/redis/src:/acs/bin" > /root/.bash_profile && \
    echo "export PATH=$PATH:/acs/user/redis/src:/acs/bin" > /acs/user/.bash_profile
  
COPY check /acs/bin/check
COPY start /acs/bin/start
ENV PATH $PATH:/acs/user/redis/src

start脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/bash
env_file=/acs/conf/env.properties
config_file=/acs/user/redis/redis.conf
 
if [ -f $env_file ];then<br>    redis_port=`cat $env_file|grep -w port.mainport|awk -F "=" '{print $2}'`
    redis_loglevel=`cat $env_file|grep -w redis.loglevel|awk -F "=" '{print $2}'`
    redis_appendonly=`cat $env_file|grep -w redis.appendonly|awk -F "=" '{print $2}'`
    redis_save900=`cat $env_file|grep -w redis.save900|awk -F "=" '{print $2}'`
    redis_save300=`cat $env_file|grep -w redis.save300|awk -F "=" '{print $2}'`
    redis_save60=`cat $env_file|grep -w redis.save60|awk -F "=" '{print $2}'`
    redis_databases=`cat $env_file|grep -w redis.databases|awk -F "=" '{print $2}'`
    redis_timeout=`cat $env_file|grep -w redis.timeout|awk -F "=" '{print $2}'`
    redis_maxclients=`cat $env_file|grep -w redis.maxclients|awk -F "=" '{print $2}'`
    redis_requirepass=`cat $env_file|grep -w redis.requirepass|awk -F "=" '{print $2}'`
    redis_slaveof=`cat $env_file|grep -w redis.slaveof|awk -F "=" '{print $2}'`
    redis_masterauth=`cat $env_file|grep -w redis.masterauth|awk -F "=" '{print $2}'`
    redis_conf_file=`cat $env_file|grep -w redis.conf.file|sed "s/^redis.conf.file=//"`
 
 if [ "$redis_conf_file" != "" ];then
     wget -O $config_file $redis_conf_file
 else
 if [ -z "$redis_port" ];then
     redis_port=6379
 fi
 if [ -z "$redis_loglevel" ];then
     redis_loglevel=verbose
 fi
 if [ -z "$redis_appendonly" ];then
     redis_appendonly=no
 fi
 if [ -z "$redis_save900" ];then
     redis_save900=1
 fi
 if [ -z "$redis_save300" ];then
     redis_save300=10
 fi
 if [ -z "$redis_save60" ];then
     redis_save60=10000
 fi
 if [ -z "$redis_databases" ];then
     redis_databases=16
 fi
 if [ -z "$redis_timeout" ];then
     redis_timeout=300
 fi
 if [ -z "$redis_maxclients" ];then
     redis_maxclients=128
 fi
 echo "daemonize yes" > $config_file
 echo "dir /acs/data" >> $config_file
 echo "pidfile /acs/user/redis.pid" >> $config_file
 echo "logfile /acs/log/redis.log" >> $config_file
 echo "dbfilename dump.rdb" >> $config_file
 echo "appendfilename \"appendonly.aof\"" >> $config_file
 echo "port $redis_port" >> $config_file
 echo "loglevel $redis_loglevel" >> $config_file
 echo "appendonly $redis_appendonly" >> $config_file
 echo "save 900 $redis_save900" >> $config_file
 echo "save 300 $redis_save300" >> $config_file
 echo "save 60 $redis_save60" >> $config_file
 echo "databases $redis_databases" >> $config_file
 echo "timeout $redis_timeout" >> $config_file
 echo "maxclients $redis_maxclients" >> $config_file
 if [ "$redis_requirepass" != "" ];then
     echo "requirepass $redis_requirepass" >> $config_file
 fi
 if [ "$redis_slaveof" != "" ];then
     echo "slaveof $redis_slaveof" >> $config_file
 fi
 if [ "$redis_masterauth" != "" ];then
     echo "masterauth $redis_masterauth" >> $config_file
 fi
 fi
 
fi
echo "################################### Start Redis ###################################"
if [ ! -d "/acs/log" ];then
    mkdir -p /acs/log
fi
if [ ! -d "/acs/data" ];then
    mkdir -p /acs/data
fi
pkill redis
redis-server /acs/user/redis/redis.conf &
if [ $? != 0 ]; then
    echo "start redis failed"
    exit 1
fi
echo "start redis success"  
exit 0

check脚本如下

1
2
3
4
5
6
7
#!/bin/bash
if [ "`ps aux|grep redis|grep -v grep|wc -l`" -eq 0 ];then
    echo "failed"
    exit 1
fi
echo "success"
exit 0

FAQ

关于此文档暂时还没有FAQ
返回
顶部