目标服务器安装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/

由于前端项目搭建的比较老,需要的东西很复杂,复杂点:

  1. 编译环境最初为nodeV6.9.5
  2. 编译需要先安装babel-cli
  3. package.json中指定的两个依赖phontomjs的依赖会自己下载安装
  4. node-gyp的依赖
  5. node-sass的依赖
  6. 前端打包需要python环境???我想哭
  7. 前端打包需要的资源异常的多,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、容器化管理工具:RancherMaven触发构建后能够直接推送到仓库,然后仓库直接启动即可。可以通过jenkins直接启动

参考内容:

在这些操作中,我学会了最有用的几个命令:

  1. docker所有的容器后台启动命令
docker run -d <image-name> tail -f /dev/null
  1. docker 删除未运行的容器
docker container prune
  1. docker 删除镜像
docker rmi <imageId> <imageId> <imageId> <imageId>
  1. 进入docker容器
docker exec -it <containerId> /bin/bash
  1. 通过Dockerfile编译镜像
docker build -t mynode:1.0 .

【运维技术】JENKINS管道部署容器化初探的更多相关文章

  1. 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区

    突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)

  2. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客

    自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署

  3. 技术沙龙|京东云DevOps自动化运维技术实践

    自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...

  4. 亲爱的,我是一条Linux运维技术学习路径呀。

    根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...

  5. 自动化运维工具SaltStack详细部署【转】

    ==========================================================================================一.基础介绍==== ...

  6. 自动化运维工具Ansible详细部署 (转载)

    自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...

  7. 端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区

    端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区 端口映射工具 redir/socat/xinetd    10人收藏此文章, 我要收藏 发表于3天前(2013-08 ...

  8. 干货云集 WOT 2017全球架构与运维技术峰会揭密技术难点

    WOT,World Of Tech专注互联网IT技术领域,是一场不容错过的技术盛会!WOT 2017全球架构与运维技术峰会三大章节,15大技术专场,60+国内外一线互联网精英大咖站台,打造兼顾技术视野 ...

  9. 运维自动化之系统部署 PXE(二)

    PXE介绍 Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持 ...

随机推荐

  1. mousedown\mouseup\click事件关系

    背景分析: 如果用户在一个元素上点击,那么最少三个事件会被触发,事件发生顺序: 1.mousedown,当用户在这个元素上按下鼠标键的时候 2.mouseup,当用户在这个元素上松开鼠标键的时候 3. ...

  2. CAT偶现NPE的问题

    1.背景 我们公司的调用链系统是基于大众点评的CAT客户端改造的,服务端完全有自己设计开发的.在是用CAT客户端收集dubbo调用信息的时候,我们发现了一个CAT偶现NPE的bug,该bug隐藏的很深 ...

  3. 计蒜客 30996 - Lpl and Energy-saving Lamps - [线段树][2018ICPC南京网络预赛G题]

    题目链接:https://nanti.jisuanke.com/t/30996 During tea-drinking, princess, amongst other things, asked w ...

  4. UITableView左右滑动cell无法显示“删除”按钮的原因分析

    http://www.cocoachina.com/bbs/read.php?tid-145693.html - (void)tableView:(UITableView *)tableView co ...

  5. sql优化 表连接join方式

        sql优化核心 是数据库中 解析器+优化器的工作,我觉得主要有以下几个大方面:1>扫表的方法(索引非索引.主键非主键.书签查.索引下推)2>关联表的方法(三种),关键是内存如何利用 ...

  6. CSS 3列等高

    方法1: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"&g ...

  7. MSMQ研究

    开发过程记录如下: 1.   本机配置MSMQ ------控制面板-------启动或者关闭Windows功能----默认安装MSMQ即可 注意:本地安装后再VS中才能引用System.Messag ...

  8. [vue]组件最佳实战

    [vue]全局组件和局部组件(嵌套+props引用父组件数据) [vue]组件篇 [vue]组件的创建(componet)和销毁(keep-alive缓存)和父子dom同步nextTick [vue] ...

  9. [LeetCode] 257. Binary Tree Paths_ Easy tag: DFS

    Given a binary tree, return all root-to-leaf paths. Note: A leaf is a node with no children. Example ...

  10. 算法---数组总结篇2——找丢失的数,找最大最小,前k大,第k小的数

    一.如何找出数组中丢失的数 题目描述:给定一个由n-1个整数组成的未排序的数组序列,其原始都是1到n中的不同的整数,请写出一个寻找数组序列中缺失整数的线性时间算法 方法1:累加求和 时间复杂度是O(N ...