| 文件名称 | 说明 |
| dockfile | docker镜像构建描述文件 |
| start | ews镜像启动脚本 |
| check | ews镜像健康检查脚本 |
制作mongodb镜像镜像的dockfile如下:
from registry.acs.aliyun.com/open/centos:3.0.0 RUN cd /acs/user && wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.2.tgz && \ tar xzf mongodb-linux-x86_64-3.0.2.tgz && rm -fr mongodb-linux-x86_64-3.0.2.tgz && mv mongodb-linux-x86_64-3.0.2 mongodb && \ echo "export PATH=$PATH:/acs/user/mongodb/bin/" >> /root/.bash_profile && \ echo "export PATH=$PATH:/acs/user/mongodb/bin/" >> /acs/user/.bash_profile COPY start /acs/bin/start COPY check /acs/bin/check ENV PATH $PATH:/acs/user/mongodb/bin
start脚本如下:
#!/bin/bash
env_file=/acs/conf/env.properties
config_file=/acs/user/mongodb/mongod.conf
if [ -f $env_file ];then
mongodb_port=`cat $env_file|grep -w port.mainport|awk -F "=" '{print $2}'`
mongodb_bind_ip=`cat $env_file|grep -w mongodb.bind_ip|awk -F "=" '{print $2}'`
mongodb_maxConns=`cat $env_file|grep -w mongodb.maxConns|awk -F "=" '{print $2}'`
mongodb_logappend=`cat $env_file|grep -w mongodb.logappend|awk -F "=" '{print $2}'`
mongodb_master=`cat $env_file|grep -w mongodb.master|awk -F "=" '{print $2}'`
mongodb_slave=`cat $env_file|grep -w mongodb.slave|awk -F "=" '{print $2}'`
mongodb_source=`cat $env_file|grep -w mongodb.source|awk -F "=" '{print $2}'`
mongodb_auth=`cat $env_file|grep -w mongodb.auth|awk -F "=" '{print $2}'`
mongodb_conf_file=`cat $env_file|grep -w mongodb.conf.file|sed "s/^$mongodb.conf.file=//"`
if [ "$mongodb_conf_file" != "" ];then
wget -O $config_file $mongodb_conf_file
else
if [ -z "$mongodb_port" ];then
mongodb_port=27017
fi
if [ -z "$mongodb_bind_ip" ];then
mongodb_bind_ip=127.0.0.1
fi
if [ -z "$mongodb_maxConns" ];then
mongodb_maxConns=1024
fi
if [ -z "$mongodb_logappend" ];then
mongodb_logappend=false
fi
if [ -z "$mongodb_auth" ];then
mongodb_auth=false
fi
echo "fork=true" > $config_file
echo "port=$mongodb_port" >> $config_file
echo "logpath=/acs/log/mongodb.log" >> $config_file
echo "dbpath=/acs/data" >> $config_file
echo "bind_ip=$mongodb_bind_ip" >> $config_file
echo "maxConns=$mongodb_maxConns" >> $config_file
echo "logappend=$mongodb_logappend" >> $config_file
echo "pidfilepath=/acs/user/mongo.pid" >> $config_file
if [ "$mongodb_master" != "" ];then
echo "master=$mongodb_master" >> $config_file
fi
if [ "$mongodb_slave" != "" ];then
echo "slave=$mongodb_slave" >> $config_file
fi
if [ "$mongodb_auth" != "" ];then
echo "auth=$mongodb_auth" >> $config_file
fi
if [ "$mongodb_source" != "" ];then
echo "source=$mongodb_source" >> $config_file
fi
fi
fi
echo "################################### Start MongoDB ###################################"
if [ ! -d "/acs/log" ];then
mkdir -p /acs/log
fi
if [ ! -d "/acs/data" ];then
mkdir -p /acs/data
fi
/acs/user/mongodb/bin/mongod -f $config_file
if [ $? != 0 ]; then
echo "start mongodb failed"
exit 1
fi
echo "start mongodb success"
exit 0
check脚本如下
#!/bin/bash
if [ "`ps aux|grep mongo|grep -v grep|wc -l`" -eq 0 ];then
echo "failed"
exit 1
fi
echo "success"
exit 0