上一篇文章講到可以利用jenkins構(gòu)建后得到部署包,本章會(huì)記錄一下如何把部署包做成應(yīng)用的鏡像啟動(dòng)。
這里涉及2塊內(nèi)容,第一個(gè)是如何在不需要jenkins的情況下做應(yīng)用的鏡像俯萌,第二是如何在jenkins中配置腳本去做鏡像運(yùn)行。第一部分不是本次的關(guān)注點(diǎn)上枕,會(huì)略微提一下咐熙。
一、做鏡像
在服務(wù)器上做應(yīng)用的鏡像辨萍,一般是寫 dockerfile棋恼,此處也不列外,目錄結(jié)構(gòu)如下:Dockerfile 和 all.sh 分別如下:
[root@gaoyx preview]# cat Dockerfile
FROM alpine-tomcat:v1.0
MAINTAINER chances-gyx
VOLUME [ "/opt/product/preview/" ]
ADD ./preview.xml /opt/product/tools/tomcat/conf/Catalina/localhost/
RUN mkdir -p /opt/product/apps
ADD ./apps/preview/ /opt/product/apps/preview/
WORKDIR /opt/product/tools/tomcat/
ADD ./all.sh /root/
RUN chmod +x /root/all.sh
CMD /root/all.sh
[root@gaoyx preview]# cat all.sh
#!/bin/bash
export JAVA_HOME=/data/jdk
export PATH=$JAVA_HOME/bin:$PATH
logsDir="/opt/product/data/preview/tomcat-preview-log"
cd /opt/product/tools/tomcat/
rm -rf logs
if [ ! -d $logsDir ]; then
mkdir -p $logsDir
fi
ln -s /opt/product/data/preview/tomcat-preview-log logs
sh /opt/product/tools/tomcat/bin/catalina.sh run
里面用到的tomcat基礎(chǔ)鏡像都是做好的锈玉,alpine-tomcat:v1.0爪飘,掛載目錄也是根據(jù)應(yīng)用實(shí)際情況配置的。
二拉背、在jenkins中配置做鏡像+啟動(dòng)
1)增加構(gòu)建步驟:寫入以下腳本:
#!/bin/bash
dates=`date "+%Y%m%d"`
projects="preview"
sudo rm -rf /opt/product/preview/apps/preview/*
sudo cp -rf /var/lib/jenkins/workspace/preview/WebContent/* /opt/product/preview/apps/preview/
sudo docker stop $projects || true
sudo docker rm -f $projects || true
sudo docker rmi $projects:$dates || true
sudo docker build -t $projects:$dates /opt/product/preview
sudo docker run --name=$projects -d -ti -p 38001:8080 -v /opt/product/data:/opt/product/data -v /data/jdk:/data/jdk $projects:$dates
構(gòu)建师崎,竟然出錯(cuò)了我百度了一下解決了,方法:
編輯 /etc/sudoers 文件椅棺,將Default requiretty注釋掉犁罩。
sudo vim /etc/sudoers
#Default requiretty
#注釋掉 Default requiretty 一行
然后再構(gòu)建一次就成功了,可以看到服務(wù)器上已經(jīng)成功啟動(dòng)的鏡像:另外两疚,
再附1個(gè)微服務(wù)(jar包 )的Dockerfile 應(yīng)用的編寫方式:
[root@gaoyx hn_telecom_collect]# cat Dockerfile
FROM alpine-tomcat:v3.0
MAINTAINER chances-gyx
VOLUME [ "/opt/product/data/" ]
ADD ./cbms_telecom_collect-0.0.1-SNAPSHOT.jar /opt/product/tools/cbms_telecom_collect-0.0.1-SNAPSHOT.jar
#RUN mkdir -p /opt/product/apps
RUN sh -c 'touch /opt/product/tools/cbms_telecom_collect-0.0.1-SNAPSHOT.jar'
ENV JAVA_HOME="/data/jdk"
ADD ./all.sh /root/
RUN chmod +x /root/all.sh
ENTRYPOINT ["/root/all.sh"]
CMD ["/usr/sbin/init"]
[root@gaoyx hn_telecom_collect]# cat all.sh
#!/bin/bash
export JAVA_HOME=/data/jdk
export PATH=$JAVA_HOME/bin:$PATH
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
cd /opt/product/tools/
rm -rf config
ln -s /opt/product/data/hn_telecom_collect/config
cd /opt/product/tools/
$JAVA_HOME/bin/java $JAVA_OPTS -jar -Dspring.config.location=./config ./cbms_telecom_collect-0.0.1-SNAPSHOT.jar
[root@gaoyx hn_telecom_collect]#
<完床估!>