去年就开始学习采用Docker+Jenkins+.Net Core搭建生成式流水线,一直拖到如今,也没有完全的好好静下来去总结总结。趁着如今对本身的严格要求下,逐渐开始重视自我总结,以此来巩固逐渐失去的知识。html
本文地址:http://www.javashuo.com/article/p-ernpowah-y.html java
这里能够参考以前写过的一篇文章:http://www.javashuo.com/article/p-crwoauvf-ce.html 内容比较简单,但还算是可以实用,安装的Docker版本是1.13.1,服务器版本是CentOS7.2。git
先说明一下,在Jenkins安装时,咱们须要在里面配置号Docker Compose组件,以此来支撑咱们在后面同时发布多个网站或服务。有关docker compose知识能够参见https://yeasy.gitbooks.io/docker_practice/content/swarm/github
因此咱们不直接拉取Jenkins镜像,经过Dockerfile的形式来拉取Jenkins镜像,并在容器内安装好Docker Compose组件。而不单独在宿主机上安装Docker Compose,尽管那样也没问题,只需将应用程序直接部署到宿主机上就行,可是就失去了咱们想要设计成流水线的目的了。docker
先建立一个Jenkins文件夹并编写Dockerfile文件:vim
1 # cd / 2 # mkdir Jenkins 3 # cd Jenkins 4 # touch Dockerfile 5 # vim Dockerfile
Dockerfile文件内容:bash
FROM jenkins USER root #更新源并安装libltdl7 RUN apt-get update && apt-get install -y libltdl7 ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安装 Docker-Compose RUN curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-'uname -s'-'uname -m' -o /usr/local/bin/docker-compose # 受权 RUN chmod +x /usr/local/bin/docker-compose
开始构建该镜像服务器
# docker build . -t myjenkinsimage
等待一会终于能够了,注意一下,若是在安装Docker-Compose时提示出错了,请看一下对应路径中 ‘uname -s'-'uname -m' 是不是这样写的,直接安装Docker Compose的写法是$(uname -s)-$(uname -m)。curl
先来配置一个存放jenkins配置信息的文件夹并修改文件夹权限,该文件夹名是在Jenkins容器中对应的Jenkins_home文件夹,因此咱们也最好直接取上这个名字便可。学习
# mkdir -p /var/jenkins_home
# chown -R 1000 /var/jenkins_home
开始运行一个以Jenkins为镜像的容器并挂载Docker套接字,以便能在容器里与Docker守护进程互动,指明Jenkins数据挂载到宿主机位置和设置容器名称,基础镜像名称等。
# docker run -d --name JenkinsContainer -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -v /var/jenkins_home :/var/jenkins_home \ myjenkinsimage
启动成功,容器已经建立完毕
如今Jenkins容器已经正常运行了,能够经过ip:port去访问并配置。首次访问后将看到这个界面,配置密码。
须要从容器里面查看一下密码,以交互状态进入容器并查看对应路径下文件密码。
# docker exec -it JenkinsContainer /bin/bash
# cat /var/jenkins_home/secrets/initialAdminPassword
获得密码,继续下面的配置步骤,选择推荐安装的插件,而后等待安装完成。
安装完毕,开始设置用户帐号信息,设置完毕,进入界面,整个Jenkins安装且配置也就所有结束了。
接下来将开始设置Asp.Net Core应用程序的Dockerfile及Docker Compose实现生成式流水线的搭建,同时感谢@Loongle的文章,少走许多弯路。
本文地址:http://www.javashuo.com/article/p-ernpowah-y.html
2018-08-31,望技术有成后能回来看见本身的脚步