zoukankan      html  css  js  c++  java
  • 【运维技术】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/
    由于前端项目搭建的比较老,需要的东西很复杂,复杂点:

    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 .
    
  • 相关阅读:
    鼠标拖动DIV移动
    JS中事件&对象
    响应式与弹性布局
    JS中的变量和输入输出
    JS中的运算符&JS中的分支结构
    HTML基本标签
    CSS基础语法
    JS中循环结构&函数
    String 二
    StringBuffer
  • 原文地址:https://www.cnblogs.com/fly-piglet/p/9934676.html
Copyright © 2011-2022 走看看