Docker(4) 自动化持续集成jenkins的搭建

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

猜你喜欢

转载自blog.csdn.net/shgh_2004/article/details/80537656