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