文件名称 | 说明 |
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 |