去年就开始学习采用Docker+Jenkins+.Net Core搭建生成式流水线,一直拖到现在,也没有彻底的好好静下来去总结总结。趁着现在对自己的严格要求下,逐渐开始重视自我总结,以此来巩固逐渐失去的知识。

  本文地址:https://www.cnblogs.com/CKExp/p/9536864.html

一、安装Docker

  这里可以参考之前写过的一篇文章:https://www.cnblogs.com/CKExp/p/8159269.html 内容比较简单,但还算是能够实用,安装的Docker版本是1.13.1,服务器版本是CentOS7.2。

二、安装Jenkins

  先说明一下,在Jenkins安装时,我们需要在里面配置号Docker Compose组件,以此来支撑我们在后面同时发布多个网站或服务。有关docker compose知识可以参见https://yeasy.gitbooks.io/docker_practice/content/swarm/

  所以我们不直接拉取Jenkins镜像,通过Dockerfile的形式来拉取Jenkins镜像,并在容器内安装好Docker Compose组件。而不单独在宿主机上安装Docker Compose,尽管那样也没问题,只需将应用程序直接部署到宿主机上就行,但是就失去了我们想要设计成流水线的目的了。

  先创建一个Jenkins文件夹并编写Dockerfile文件:

 # cd /
# mkdir Jenkins
# cd Jenkins
# touch Dockerfile
# vim Dockerfile

  Dockerfile文件内容:

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)。

   先来配置一个存放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

  现在Jenkins容器已经正常运行了,可以通过ip:port去访问并配置。首次访问后将看到这个界面,配置密码。

  

  需要从容器里面查看一下密码,以交互状态进入容器并查看对应路径下文件密码。

# docker exec -it JenkinsContainer /bin/bash
# cat /var/jenkins_home/secrets/initialAdminPassword

  得到密码,继续下面的配置步骤,选择推荐安装的插件,然后等待安装完成。

  安装完毕,开始设置用户账号信息,设置完毕,进入界面,整个Jenkins安装且配置也就全部结束了。

接下来将开始设置Asp.Net Core应用程序的Dockerfile及Docker Compose实现生成式流水线的搭建,同时感谢@Loongle的文章,少走许多弯路。

本文地址:https://www.cnblogs.com/CKExp/p/9536864.html

2018-08-31,望技术有成后能回来看见自己的脚步

Docker中完成Jenkins的安装的更多相关文章

  1. CentOS7下Docker中构建Jenkins容器

    背景 在CentOS搭建Docker完成后,我们需要在Docker中搭建Jenkins用来实现工程自动部署. 安装前提 jdk已安装,安装目录如:usr/java/jdk1.8.0_161 maven ...

  2. 在docker中运行jenkins实现代码自动发布到测试服务器

    在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...

  3. docker中搭建jenkins环境

    想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...

  4. 在Docker中自定义Jenkins镜像

    一. 构建Jenkins slave. 1. 构建镜像需要三个步骤: (1) 创建Dockerfile (2) 构建镜像 (3)在master上改变agent的配置 2. 以下是创建一个服务Pytho ...

  5. sh: /etc/init.d/sshd: not found Docker中的Alpine镜像安装sshd无法启动

    问题描述 在Alpine镜像中安装了openssh-server和openssh之后,无法执行ssh localhost.发现未启动服务,开启服务时报以下错误 / # ls /etc/init.d/s ...

  6. Docker容器使用jenkins部署web项目--总结(二)

    (1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat.   新建maven项目,添加findbugs plugin. 使用docker启动jenkins,go ...

  7. mac通过docker一键部署Jenkins

    目录 mac通过docker一键部署Jenkins 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.下载脚本 1.2.安装程序 1.2.1.安装程序详情 1 ...

  8. 宿主机连接docker中的mysql

    宿主机连接docker中的mysql   dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 330 ...

  9. docker中安装Jenkins

    1.获取Jenkins镜像(不要直接docker pull jenkin,这样获取的不是最新的版本,后续安装部分插件会不成功) docker pull jenkins/jenkins 创建文件夹 su ...

随机推荐

  1. 【二分+最小树形图】UVA11865 比赛网络

    Description During 2009 and 2010 ICPC world finals, the contest was webcasted via world wide web. Se ...

  2. otter代码在IDEA远程DEBUG方法

    众所周知,Otter的代码打包后,是通过Jetty启动的,Otter代码的启动脚本中自带了开启Jetty远程DEBUG的脚本,所以我们只需要在启动Otter Manager和Otter Node的时候 ...

  3. BZOJ_3894_文理分科&&BZOJ_2127_happiness_最小割

    BZOJ_3894_文理分科_最小割 Description  文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠 结过)  小P所在的班级要进行文理分科.他的班级可以用一个n*m的矩阵进 ...

  4. jenkins 解决构建成功后进程消失的问题

    最近模块拆分,独立出了几个服务.上线流程并不复杂,只需要在指定目录执行bash deploy.sh master即可上线master分支.但是架不住模块太多,每天在上线流程上也花费了不少时间,所以尝试 ...

  5. WPF 列表开启虚拟化的方式

    正确开启虚拟化的方式 列表如ListBox,ListView,TreeView,GridView等,开启虚拟化 ScrollViewer设置CanContentScroll=True 直接在模板中,设 ...

  6. CentOS7防火墙管理firewalld

    学习apache安装的时候需要打开80端口,由于centos 7版本以后默认使用firewalld后,网上关于iptables的设置方法已经不管用了,想着反正iptable也不太熟悉,索性直接搬官方文 ...

  7. Linux下全局安装composer

    下载composer curl -sS https://getcomposer.org/installer | php 将composer.phar文件移动到bin目录以便全局使用composer命令 ...

  8. SA SD SE 区别

    [SA(System Analysis)系统分析师] 通过一系列分析手法把User想要的结果,以各种文件方式表达出来. 此过程着重于工作流程和处理逻辑. 规划系统功能和模块. 定出初步的数据库内容及系 ...

  9. JavaSE-管道流

    1,)创建管道输出流PipedOutputStream pos和管道输入流PipedInputStream pis 2,)将pos和pis匹配,pos.connect(pis); 3,)将pos赋给信 ...

  10. dubbo+zookeeper的使用

    我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容,就是分布 ...