【运维技术】JENKINS管道部署容器化初探
目标服务器安装docker参考官方文档
https://docs.docker.com/install/linux/docker-ce/centos/
(可选)在目标服务器上安装docker私服
https://docs.docker.com/registry/
目标服务器启动jenkinsdocker镜像容器
https://hub.docker.com/r/jenkinsci/blueocean/
创建dockerfile进行后端编译环境的镜像搭建
参考官方教程:https://jenkins.io/doc/tutorials/build-a-java-app-with-maven/
docker hub上的maven官方镜像仓库docker hub maven official
使用jdk8对应的apline最小化镜像:
https://github.com/carlossg/docker-maven/blob/05f4802aa5c253dcf75fe967c6f45b3fb1e2f26e/jdk-8-alpine/Dockerfile
在Dockerfile的同级目录,将私服的settings.xml(自行准备好的),添加脚本放置到容器中
# 拷贝settings.xml到docker容器中的目录/usr/share/maven/ref/
COPY settings.xml /usr/share/maven/ref/
创建dockerfile进行前端编译环境的镜像搭建
参考官方教程:https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/
由于前端项目搭建的比较老,需要的东西很复杂,复杂点:
- 编译环境最初为nodeV6.9.5
- 编译需要先安装babel-cli
- package.json中指定的两个依赖phontomjs的依赖会自己下载安装
- node-gyp的依赖
- node-sass的依赖
- 前端打包需要python环境???我想哭
- 前端打包需要的资源异常的多,4g内存加上4核心cpu
心路历程:
首先我使用apline-node镜像进行编译,发现跑起来需要python环境
使用apline-python的镜像编译,发现无法进行node环境的安装
使用解压方式基于apline-python的方式安装node,发现node跑步起来,操作系统不相同,依赖的环境也不相同
使用centos7-python的镜像发现Dockerfile编写的脚本没有权限
使用centos7的镜像,发现自带python的环境(欣喜若狂)制作node镜像很开心
制作完成之后,通过容器后台运行,将包拷贝到容器中编译没有问题,但是jenkins上run跑的是cat命令,执行就出现问题
最后最后我奔溃了......我觉得再这么搞下去没有价值,所以我决定放弃,因为现在我们项目决定前端使用antd-pro的脚手架了,所以老项目这么搞的参考价值不大了。
综合上述所述我决定放弃前端编译环境的搭建和学习!!!
配置后端启动环境
使用编译完成之后的构建物(就是部署包)在一个自己定义的容器中运行
配置前端启动环境镜像
同上,不过需要进行环境变量的设定,因为配置的获取需要自己定义
自动化运维部署
上平台:我所知道的平台K8s、容器化管理工具:Rancher、Maven触发构建后能够直接推送到仓库,然后仓库直接启动即可。可以通过jenkins直接启动
参考内容:
在这些操作中,我学会了最有用的几个命令:
- docker所有的容器后台启动命令
docker run -d <image-name> tail -f /dev/null
- docker 删除未运行的容器
docker container prune
- docker 删除镜像
docker rmi <imageId> <imageId> <imageId> <imageId>
- 进入docker容器
docker exec -it <containerId> /bin/bash
- 通过Dockerfile编译镜像
docker build -t mynode:1.0 .
【运维技术】JENKINS管道部署容器化初探的更多相关文章
- 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区
突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
- 亲爱的,我是一条Linux运维技术学习路径呀。
根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...
- 自动化运维工具SaltStack详细部署【转】
==========================================================================================一.基础介绍==== ...
- 自动化运维工具Ansible详细部署 (转载)
自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...
- 端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区
端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区 端口映射工具 redir/socat/xinetd 10人收藏此文章, 我要收藏 发表于3天前(2013-08 ...
- 干货云集 WOT 2017全球架构与运维技术峰会揭密技术难点
WOT,World Of Tech专注互联网IT技术领域,是一场不容错过的技术盛会!WOT 2017全球架构与运维技术峰会三大章节,15大技术专场,60+国内外一线互联网精英大咖站台,打造兼顾技术视野 ...
- 运维自动化之系统部署 PXE(二)
PXE介绍 Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持 ...
随机推荐
- MongoDB 学习笔记2----条件操作符
条件操作符:用于两个比较两个表达式并从mongdb中获取文档 mongodb常见的操作符及解析说明 $lt:小于 example:ago<20 $lte:小于等于 example:<=20 ...
- PXE配置手记(Linux)
服务器端:RHEL5(静态IP 192.168.1.101) 源Gentoo系统:服务器上的Gentoo系统就来自于它,编译内核也是在这台机器上执行的 无盘客户端:网卡是 AMD PCnet32 支持 ...
- ubuntu 12.10上安装tftpd-hpa
ubuntu 12.10上安装tftpd-hpa 1)安装tftp-hpa,tftpd-hpa sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是cli ...
- Python requests 301/302/303重定向(跨域/本域)cookie、Location问题
今天使用request的get方法获取一个网站的登录页信息,结果使用charles抓包的时候发现该网站登录页303(重定向的问题),网上查了很多资料,原因如下: 一.cookie 原因:利用reque ...
- C++三大特性之封装
原文地址:https://qunxinghu.github.io/2016/09/12/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%B ...
- SQLServerDBA十大必备工具---让生活轻松点
原贴:http://www.cnblogs.com/fygh/archive/2012/04/25/2469563.html 国外整理拓展帖:http://weblogs.sqlteam.com/ml ...
- 群用户通过微信小程序可以更好地协作了
今天,小程序向开发者开放了群ID的接口能力.简单地说,就是当你把小程序分享在群聊中,被点击后开发者可获取群ID和群名称,也方便更好地针对群场景提供个性化服务.不同的群有各自的群ID,那么这个新能力开发 ...
- java-JProfiler(三)-进行本地JVM的性能监控-监视本地java程序
1.打开JProfiler 默认会启动快速窗口[或者使用菜单Session→Start Center]打开 这里监视本地java程序,故在 主界面 2.查看监视界面 这时就可以查看 Instance ...
- IO操作文件的复制与删除
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IO ...
- (转)HTML5开发中Access-Control-Allow-Origin跨域问题
今天准备通过JavaScript的方式调用问说问答的内容,由于使用的不同的二级域名,遇到了一个跨域问题,虽然可以使用JSON或者XML来解决这个问题,但是我们可以通过Access-Control-Al ...