[整理]docker学习之使用jenkins容器部署git上的web到nginx容器中

docker学习之使用jenkins容器部署web到nginx容器中

参考文章列表:

前言:这里贴出来对我帮助过并在实际操作中参考的的文章连接:
1.CentOS 7 中 Docker 的安装 https://www.cnblogs.com/kaid/p/7640781.html
2.在(Docker里的)Jenkins里运行Docker实践 https://my.oschina.net/donhui/blog/478514
3.Publish Over SSH插件 http://blog.csdn.net/wangmuming/article/details/22925895
4.jenkins构建Docker 镜像 http://blog.csdn.net/gsying1474/article/details/51126522
5.CentOS Docker 安装(菜鸟教程) http://www.runoob.com/docker/centos-docker-install.html

网易云docker镜像(可能需要注册账号): https://c.163yun.com/hub#/m/home/

环境:

centos7.3x64

docker介绍:

关于什么是docker ,docker的种种好处以及使用场景等等就不在此处贴出来了,想来能看到这篇文章的人基本都有了解了。

前言:

在centos7的机器上,使用docker技术,创建两个docker容器: jenkins容器,nginx容器,实现website的自动部署,其中jenkins容器和nginx容器是兄弟关系。
因为看到好多文章都是在宿主机上安装jenkins并配置java,maven,git环境,且都不是用官方的jenkins-docker镜像。还有些文章只是把官方jenkins-docker镜像pull,run,之后怎么自动化并部署都没有涉及,所以感觉很有必要写这个(主要是本人也不是运维相关,突然萌发学习docker的兴趣,说不定哪天就忘记了,就当作是记个笔记了)
(文章整理上传于2018-3-3,可能会有陆续更新与补充,因为实在太懒,所以大部分内容都是c+v)

跳过:

关于什么防火墙啦,宿主机端口开放啦,163镜像站啦就不介绍了

1. 安装docker

前提条件:
目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

//通过 uname -r 命令查看你当前的内核版本:
[root@runoob ~]# uname -r 3.10.0-327.el7.x86_64
//Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:
[root@runoob ~]# yum -y install docker
//安装完成后,启动docker服务:
[root@runoob ~]# service docker start
//查看docker是否安装成功(出现client和server,需启动docker服务后才行):
[root@centos~]# docker version
    Client:
     Version:         1.12.6
     ...
    Server:
     Version:         1.12.6
     ...
[root@VM_30_202_centos ~]# 
2.docker的hello-world

测试运行docker官网提供的 hello-world

//查看本地镜像 :
[root@centos~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
//因为是第一次,还没有任何镜像
//下载官网hello-world镜像到本地:
[root@centos~]# docker pull hello-world
 ...经过一段时间后
 //查看本地镜像
 [root@centos~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world   latest              f2a91732366c        3 months ago        1.848 kB
//可以看到,有了一个hello的镜像,有时候,因为docker官网特别特别慢,可以从国内镜像站pull镜像,个人推荐163云(跳过如何用163云)
//使用hello-world镜像创建,并运行hello-world容器:
[root@runoob ~]#docker run hello-world
    ....输出一大堆,代表成功了,hello-world容器会在运行会自动停止
//查看在运行中的docker容器:
[root@centos~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
//查看所有的docker容器()包括已经停止的容器:
[root@centos~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
//因为没有运行中的,所以啥都没有     

//常用命令:                     
//停止运行中的容器命令:
docker stop 容器名称或者容器id
//移除容器命令
docker rm 容器名称
//移除本机的镜像
docker rmi 镜像名称
3.nginx容器安装及使用:
首先,需要拉去nginx的镜像到本地:
[root@centos~]# docker pull nginx
    ...等待好久就行了
/*
首先在宿主机创建一个文件夹: /some/content/
这个文件夹主要用来挂载nginx容器内部的 /usr/share/nginx/html 文件夹
这样,只需要把web放入宿主机的/some/content/中,对应的nginx容器/html/中也有了对应文件,不需要在进入nginx操作了,且数据存放在容器之外的宿主机中,即使容器删除了,存储在本机html/中的web数据也不会消失 ,关于映射关系,可以参考文档https://c.163yun.com/hub#/m/repository/?repoId=2967(自行注册网易云镜像中心账号,进入镜像仓库,搜索nginx等,基本都有使用说明)
*/
//创建并启动容器:
[root@centos~]# docker run --name nginx -d -p 80:80  -v /some/content:/usr/share/nginx/html nginx
//上边的命令就不解释了,可参考http://www.runoob.com/docker/docker-install-nginx.html
//查看运行中的容器:
[root@centos~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
d9967bc5        nginx               "nginx -g 'daemon off"   25 hours ago        Up 25 hours         0.0.0.0:80->80/tcp                                 nginx
//发现nginx已经启动,宿主机的80端口映射nginx容器的80端口,可以使用http://宿主机ip:80 访问nginx了,如果访问拒绝,说明防火墙没放行,如果能访问,可以随便放置一个index.html到宿主机的/some/content/目录中,就能看到index的内容
//上边的 --name nginx意思是为新的容器命名为nginx

//停止容器,之后http://宿主机ip:80就看不到任何东西了:
[root@centos~]# docker stop nginx (容器名称或者id)
//再次启动nginx容器,之后又可以宿主ip访问了:
[root@centos~]# docker start nginx (容器名称或者id)
//因为已经创建了nginx容器,所以使用start命令,而不是run命令,可参考http://www.runoob.com/docker/docker-command-manual.html
4.jenkins容器安装及初始化:
//jenkins镜像下载
[root@centos~]# docker pull nginx
 ...省略
/*
在本机创建/your/home/目录,用来存放jenkins容器的数据
(命令略)
*/
//创建jenkins容器,并运行: 
[root@centos~]# docker run --name jenkins -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
  ...省略
//浏览器: http://宿主ip:8080 ,进行一些初始化设置等等(略过)
5.jenkins容器部署web到ngix容器中:

思路:jenkins首先拉取git代码,然后通过ssh把拉取的代码copy到nginx容器html中,完毕。
1,为了能够使用ssh连接宿主机,然后用宿主机命令拷贝jenkins拉取的代码到nginx容器,
需要为jenkins安装Publish Over SSH插件:

jenkins>系统管理>管理插件>从可选插件中安装Publish Over SSH插件,如果失败,多试几次,总会成功的

2.配置宿主机ssh信息.

jenkins>系统管理>系统设置>翻到最后,配置Publish over SSH内容如下:
具体参数含义可参考文章: http://blog.csdn.net/wangmuming/article/details/22925895
至于如何配置,生成ssh-key,以及如何放置key与权限等,自行度娘,这里放出截图(转):

这里写图片描述
记得点击下方的’test configuration’,出现success才算成功。
3.jenkins 构建一个自由风格的项目,主要配置无非是填写git地址,构建添加构建步骤 ‘‘Send files or ex
ecute commands over ssh’’ ,把拉取的项目用shell命令放入nginx 的docker容器中:
这里写图片描述
这里写图片描述
这里写图片描述
具体的shell命令就不贴了自行度之。。。
4.之后点击构建项目即可,如果构建失败 ,查看jenkins控制台信息,找出错误并解决即可
关于拷贝,即拷贝jenkins下的对应项目文件夹到nginx容器,即使上边蓝色线条涂抹的部分,自行度之.( cp -r /your/jenkins_home/workspace/nginx1/website /some/content/html/nginx1)
5.玩

//docker 向容器拷贝文件:
docker cp 路径 容器id:路径

//如果不出意外,文章没有后续更新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins部署Vue项目可以通过以下步骤进行: 1. 首先,在Jenkins服务器上安装Node.js和Vue CLI工具。确保Node.js版本符合项目要求,并通过npm安装Vue CLI。 2. 在Jenkins创建一个新的自由风格的项目,并配置好源代码管理,例如使用Git进行版本控制。 3. 在构建环境配置Node.js的路径,以便Jenkins能够正确识别和执行Vue项目的构建命令。 4. 在构建步骤添加Shell命令或者使用插件(如NodeJS插件)来执行以下命令: - 安装项目依赖:使用npm或者yarn install命令安装项目所需的依赖项。 - 构建项目:执行npm run build或者yarn build命令来构建Vue项目。 - 打包项目:将构建后的文件打包成一个压缩文件(如tar.gz或zip)。 5. 可选的步骤:如果需要将构建后的文件部署到服务器上,可以添加一些部署命令: - 上传文件到服务器:可以使用SCP或者rsync等命令将构建后的文件上传到服务器上。 - 配置Nginx:在服务器上安装和配置Nginx,将Nginx的根目录指向Vue项目的构建输出目录,以便通过Web服务器访问项目。 需要注意的是,上述步骤的具体命令和配置可能会因项目要求和环境而有所不同。因此,请根据实际情况进行调整和修改。<span class="em">1</span> #### 引用[.reference_title] - *1* [Docker结合Jenkins部署vue项目](https://download.csdn.net/download/weixin_38672807/14885048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值