1. 安装JDK
安装目录:/home/docker/download/jdk_install在此目录下面制作Dockerfile 和 JDK(解压包)。
a. Dockerfile
FROM busybox
MAINTAINER Brant shi "[email protected]"
LABEL Description="jdk volume" Vendor="Brant" Version="1.8"
VOLUME "/opt/jdk"
ADD . /opt
b. JDK
下载jdk压缩包, 并解压放在JDK的目录下面;
c. build
docker build .
d. 运行jdk
docker run --detach -it --name jdk1.8 jdk1.8
2. 安装jenkins
安装目录:/home/docker/download/jenkins_install在此目录下面制作Dockerfile 和 jenkins(解压包)
a. Dockerfile
FROM busybox
MAINTAINER Brant shi "[email protected]"
LABEL Description="jenkins war" Vendor="Brant" Version="latest"
VOLUME ["/opt/tomcat/webapps/jenkins"]
RUN mkdir -p /opt/tomcat/webapps
ADD . /opt/tomcat/webapps
b. jenkins
下载jenkins.war, 并解压放在jenkins的目录下面;
c. build
docker build .
d. 运行jenkins-war
docker run --detach -it --name jenkins-war jenkins-war
3. 安装tomcat8
安装目录:/home/docker/download/tomcat_install在此目录下面制作Dockerfile 和 tomcat(解压包)
a. Dockerfile
FROM centos
MAINTAINER Brant shi "[email protected]"
LABEL Description="Apache tomcat" Vendor="Brant" Version="8"
ADD . /opt
# Define ENV
ENV LANG C.UTF-8
ENV CATALINA_HOME /opt/tomcat
ENV PATH $PATH:$CATALINA_HOME/bin
# Exporse ports
EXPOSE 8080
# Volume
VOLUME ["$CATALINA_HOME/conf","$CATALINA_HOME/logs","$CATALINA_HOME/webapps","$CATALINA_HOME/work"]
# Define entrypoint
ENTRYPOINT ["catalina.sh", "run"]
b. tomcat
下载tomcat.gz, 并解压放在tomcat的目录下面;
c. build
docker build .
4. 部署jenkins
a. 制作启动文件 jenkins.sh#!/bin/bash
echo "restart jenkins..."
docker stop jenkins && echo "停止服务成功!" || echo "停止服务失败!"
docker rm jenkins && echo "销毁服务成功!" || echo "销毁服务失败!"
docker run -tid --restart=always \
--env JAVA_HOME=/opt/jdk \
--env JAVA_OPTS="-Xms1536m -Xmx1536m -XX:MaxPermSize=512m" \
--publish 5010:8080 \
--memory-swappiness=1 \
--ulimit nofile=20480:40960 \
--volumes-from jdk1.8 \
--volumes-from jenkins-war \
--volume /home/docker/jenkins/conf:/opt/tomcat/conf \
--volume /home/docker/jenkins/logs:/opt/tomcat/logs \
--name jenkins \
tomcat8
#使用本地资源的启动脚本
#!/bin/bash
echo "restart jenkins..."
docker stop jenkins && echo "停止服务成功!" || echo "停止服务失败!"
docker rm jenkins && echo "销毁服务成功!" || echo "销毁服务失败!"
docker run -tid --restart=always \
--env JAVA_HOME=/usr/local/jdk \
--env JAVA_OPTS="-Xms1536m -Xmx1536m -XX:MaxPermSize=512m" \
--env MAVEN_HOME=/usr/local/maven \
--publish 5010:8080 \
--memory-swappiness=1 \
--ulimit nofile=20480:40960 \
--volume /home/docker/sofeware/maven:/usr/local/maven:rw \
--volume /home/docker/sofeware/.m2:/root/.m2:rw \
--volume /home/docker/sofeware/jdk:/usr/local/jdk \
--volumes-from jenkins-war \
--volume /usr/bin/git:/usr/bin/git:ro \
--volume /usr/libexec/git-core:/usr/libexec/git-core:ro \
--volume /home/docker/jenkins/jenkins_home:/root/.jenkins:rw \
--volume /home/docker/jenkins/conf:/opt/tomcat/conf \
--volume /home/docker/jenkins/logs:/opt/tomcat/logs \
--volume /etc/hosts:/etc/hosts:ro \
--name jenkins \
tomcat8
b.运行jenkins (这里设置运行权限什么的都不说了)
./jenkins.sh
c. 开发端口5010
firewall-cmd --zone=public --add-port=5010/tcp --permanent firewall-cmd --reload
5. 用nginx代理(域名:jenkins.weipaiku.com)
a. 设置虚拟目录文件server {
listen 80;
server_name jenkins.weipaiku.com;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
index /jenkins;
}
location /jenkins {
proxy_pass http://192.168.0.210:5010/jenkins;
proxy_set_header Host $http_host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
}
}
b. 重启nginx
docker restart nginx
6. 访问jenkins
http://jenkins.yaok.com/进入docker 容器中,获取初始化密码:
$ docker exec -it jenkins bash
$ cat /root/.jenkins/secrets/initialAdminPassword
到此已经完成部署了。
jenkins的详细设置和操作,参考:https://www.cnblogs.com/zhaojiankai/p/7828181.html