繼http://www.cnblogs.com/guilty/p/4747993.html以後。html
前兩天朋友問的,docker+jenkins整合。java
我也沒搞過,可是正好最近有空,我也頗有興趣,就搞一下。linux
docker是什麼,以及如何安裝,我這裏不作解釋,只介紹一些我踩過的坑。git
首先說docker,我用的是centos7的鏡像,裏面連wget都沒有,網上資料也不多,坑也是本身慢慢踩過來。web
先說路由表,我用的是阿里雲,安裝完docker,命令會報錯,經查找須要改路由表docker
sudo route del -net 172.16.0.0 netmask 255.240.0.0
因爲我對linux也不是很熟,我只知道他須要啓動一些進程,例如提示你docker -d,你能夠輸入docker -d看看。apache
而後docker images,如圖下centos
這個鏡像pull下來以後,沒有改動,就基於這個構建。tomcat
構建方式首選Dockerfile,他的方便性仍是不錯的。cookie
新建一個文件,這裏用
touch Dockerfile
vi Dockerfile
下面是我寫的Dockerfile,你能夠直接複製進去
FROM centos:7 MAINTAINER yuxh yuxh19901014@163.com RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo RUN sed -i.bak 's#aliyun\.com#aliyuncs.com#' /etc/yum.repos.d/CentOS-Base.repo RUN yum install wget -y RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz RUN wget http://mirrors.aliyuncs.com/apache/tomcat/tomcat-7/v7.0.63/bin/apache-tomcat-7.0.63.tar.gz RUN wget http://mirrors.aliyuncs.com/apache/ant/binaries/apache-ant-1.9.6-bin.tar.gz RUN cd /opt RUN tar -xvf apache-tomcat-7.0.63.tar.gz -C /opt/ RUN tar -xvf apache-ant-1.9.6-bin.tar.gz -C /opt/ RUN tar -xvf jdk-7u79-linux-x64.tar.gz -C /opt/ ENV JAVA_HOME /opt/jdk1.7.0_79 ENV ANT_HOME /opt/apache-ant-1.9.6 ENV CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH $JAVA_HOME/bin:$ANT_HOME/bin:$PATH RUN wget -P /opt/apache-tomcat-7.0.63/webapps http://mirrors.jenkins-ci.org/war/latest/jenkins.war RUN yum install git -y CMD /opt/apache-tomcat-7.0.63/bin/catalina.sh run # expose memcached port EXPOSE 8080
第一行,是基於哪一個鏡像,我剛剛說過,第三行只是聯繫方式。
下面就是修改和增長一些開發環境,這裏多虧有運維的朋友幫忙,要否則我真搞不定。
上面有一行關於jdk的下載,那個是須要跳過oracle驗證,因爲直接下載不下來,這裏是百度找到的方法。
下面使用了ENV 來配置環境變量
CMD是構建以後,執行的命令,這裏啓動tomcat
EXPOSE 8080 這裏是tomcat須要的端口。
這些寫完以後保存,而後執行以下命令構建
docker build -t jenkins/centos:v1 .
其中-t jenkins/centos給鏡像命名,v1是標籤,後面有個.,意思是從當前目錄查找Dockerfile
構建過程是很慢的,請耐心等待。。。。。
成功後,使用以下命令運行鏡像。
docker run -d -p 80:8080 jenkins/centos:v1
80:8080意思是,端口映射,把8080映射到80.
這裏若是不報錯,輸入ip就能夠訪問了
有什麼不會的能夠問我,反正我也不怎麼會,2333333