文件名称 | 说明 |
dockfile | docker镜像构建描述文件 |
start | ews镜像启动脚本 |
制作nodejs镜像的dockfile如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from registry.acs.aliyun.com/open/centos: 3.0 . 0 COPY app.js /acs/user/app.js COPY package .json /acs/user/ package .json COPY node-v0. 12.7 .tar.gz /acs/user/node-v0. 12.7 .tar.gz RUN cd /acs/user/ && tar -xzf node-v0. 12.7 .tar.gz && rm -fr node-v0. 12.7 .tar.gz && \ mv node-v0. 12.7 node && \ cd /acs/user/node && ./configure --prefix=/acs/user/local/node/ && make && make install && \ ln -s /acs/user/local/node/bin/* /usr/sbin/ && \ npm install -g grunt-cli && npm config set registry https: //registry.npm.taobao.org && \ ln -s /acs/user/local/node/bin/grunt /usr/sbin/grunt ENV NODE_HOME /acs/user/local/node ENV PATH $PATH:/acs/user/local/node/bin:/acs/user/local/node/lib/node_modules/npm/bin/node-gyp-bin RUN source /etc/profile COPY start /acs/bin/start |
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 | ENV_FILE=/acs/conf/env.properties THIS_PATH= "/acs/user/" WEBROOT= "/acs/code/" APP_START_FILE= "app.js" if [ ! -d "/acs/log" ]; then mkdir -p /acs/log fi if [ ! -d "/acs/data" ]; then mkdir -p /acs/data fi if [ ! -d "$WEBROOT" ]; then mkdir -p $WEBROOT<br>fi if [ -f $ENV_FILE ]; then CONF_APP_ROOT_PATH=`cat $ENV_FILE |grep -w APP_ROOT_PATH |awk -F "=" '{print $2}' ` if [ ! '$CONF_APP_ROOT_PATH' = "" ]; then WEBROOT=${WEBROOT}${CONF_APP_ROOT_PATH} Fi APP_START_FILE=`cat $ENV_FILE |grep -w APP_START_FILE |awk -F "=" '{print $2}' ` if [ "$APP_START_FILE" = "" ]; then APP_START_FILE= "app.js" Fi Fi if [ ! -d "$WEBROOT" ]; then mkdir -p $WEBROOT fi content=`ls $WEBROOT` if [ "$content" == "" ]; then # if [ ! -d $WEBROOT ]; then cp $THIS_PATH "app.js" $WEBROOT fi PACKAGE_FILE=${WEBROOT} "package.json" if [ -f $ENV_FILE ]; then APP_NPM_INSTALL=`cat $ENV_FILE |grep -w APP_NPM_INSTALL |awk -F "=" '{print $2}' ` if [ "$APP_NPM_INSTALL" = "true" ]; then if [ -f $PACKAGE_FILE ]; then cd $WEBROOT npm install else cp $THIS_PATH "package.json" /acs/ package .json cd /ace rm -rf node_modules npm install fi fi fi node ${WEBROOT}${APP_START_FILE} |