首页
学习
活动
专区
圈层
工具
发布

写个简单的项目自动部署脚本

我们以jenkins为例,其本质就是从远程仓库拉取代码,然后本地编译打包,然后上传到目标服务器执行启动命令,简化过程如下: 那么在一些简单的项目中,我们可不可以完全自己写一个脚本来做打包部署呢,答案是可以的...;如果已经存在项目目录,则进入目录拉取最新代码 使用mvn命令编译打包,并输出可执行jar到target目录,如果编译失败则退出执行 找出服务进程,并发送kill执行进行终止服务进程,并且休眠10s,给服务进程足够的时间处理剩余的事情...从项目目录的target文件夹拷贝可执行jar到项目工作目录 再次检查服务进程是否已经终止,如果没有终止则强行终止(理论上10s可以正常终止,休眠时间可按需调整) 通过nohup java -jar命令后台运行服务...docker start sudo systemctl enable docker 项目路径不再重复创建,还是基于上一小节的路径,在项目工作路径创建Dockerfile文件,内容如下: FROM openjdk...服务镜像,并定义传入三个入参 停止老的docker中的java服务容器,并移除 找到老的java服务镜像,并移除 启动新的java服务容器,启动成功后打印启动成功日志 执行start.sh脚本打包部署:

73410

基于Jenkins+Python+Ubuntu+Docker的接口UI自动化测试环境部署详细过程

学习官网:Jenkins官网,Jenkins中文官网;Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件;用Java语言编写的,可在Tomcat、Docker等流行的容器中运行...环境需求我的环境是:在Windows10操作系统上安装虚拟机Hyper-V,然后在虚拟机里安装Ubuntu操作系统,自动化测试在Ubuntu上运行;后续根据自身的环境选择合适的安装步骤,如果是以上环境...,可参考以下:LinuxGUI自动化测试框架搭建(三)-虚拟机安装(Hyper-V或者VMWare) # 我们的环境是:1、Linux服务器一台(我的是Ubuntu),在虚拟机中的,哈哈2、在服务器上正确安装...;2、创建jenkins容器;3、根据自动化项目依赖包构建python镜像(构建自动化python环境);4、运行新的python容器,执行jenkins从仓库中拉下来的自动化项目5、执行完成之后删除容器...:将docker.sock映射到jenkins容器中docker.sock文件是docker client与docker daemon通讯的文件-v /usr/bin/docker:/usr/bin/docker

2.4K181
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CI与CD之Docker上安装Jenkins

    一.CI,CD,Jenkins的介绍 CI:持续集成(Continuous integration,简称 CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差...并拥有众多插件来支持它用于持续、自动的构建/测试软件项目、监控外部任务的运行 二.在docker上安装Jenkins 选择jenkins的镜像文件,这里推荐使用jenkinsci/blueocean,该镜像包含当前的长期支持...如果您需要退出Jenkins,这可以保持整洁; -d 在后台运行容器; -p 映射容器服务的8080端口到宿主机的8090(我的8080已经被Apollo占用,所以改为8083,没被占用的可以不用改,发现很多工具都喜欢用.../jenkins”目录挂载到容器中的/var/jenkins_home中,作为jenkins的存储目录;/var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字...该映射允许jenkinsci/blueocean 容器与Docker守护进程通信。

    92300

    Jenkins 配合Pipeline使用Docker

    id属性还可用于在管道退出之前检查正在运行的Docker容器中的日志: sh "docker logs ${c.id}" 注意:withRun块内的shell步骤不是在容器内运行的,但它们可以使用本地TCP...端口连接到容器 构建容器 为了创建Docker镜像,Docker Pipeline插件还提供了一个build()方法,用于在PIpeline运行期间根据源码库中的Dockerfile创建新镜像。...一种需要在镜像中包含它所需的所有工具、运行环境,然后在镜像中运行整个构建,另一种借助插件inside()方法,实现在任意镜像中运行构建,和前者的区别在于后者可以不用提前在镜像中包含所需要工具、运行环境,...像sh这样的外部进程将被包装在docker exec中,以便在容器中运行。其他步骤(如测试报告)未经修改即可运行:它们仍然可以访问由构建步骤创建的工作区文件。...这将解锁其他Jenkins插件中的功能:您可以使用镜像跟踪所有项目,或者将此项目配置为在更新的镜像推送到Docker注册表时自动触发。

    3.9K10

    微服务 day20:项目部署与持续集成(DevOps)

    、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。...容器技术中 docker 引擎取代了 hypervisor,docker引擎是运行在住宿操作系统上的一个进程,该进程管理了多个docker容器,每个docker容器集成了应用软件、依赖库,容器之间相互隔离...Docker daemon(Docker守护进程) Docker守护进程是部署在操作系统上,负责支撑 Docker Container 的运行以及本地 Image 的管理。...出现上边的画面需要输入 jenkins 的初始密码,查看容器的运行日志,从日志中找到初始里面 sudo docker logs -f jenkins 日志如下图 ? 日志中没有找到初始密码?...这里我们在创建容器时指定了 -v /var/docker/jenkins:/var/jenkins_home ,表示将 /var/docker/jenkins 目录映射到 jenkins 容器上的 /var

    2.3K40

    Docker安装Jenkins打包Maven项目为Docker镜像并运行

    最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。...最终版就是:通过git上传代码--->使用Jenkins构建自动打包--->把jar包打成docker镜像,运行在docker中,Windows下进行访问 主要记录一下一些踩过的坑和注意点,让后来人能够跟着小编一次完成...:/var/jenkins_home:是对容器内存储Jenkins的一些配置信息的文件夹 -v /usr/local/java/jdk:/usr/local/jdk1.8:是把linux下的jdk和容器内的关联...容器里使用我们Linux下的docker。...控制台输出报错 我们看到打包成功了,就是在使用docker命令的时候出现权限问题,这是我们要给docker.sock权限就可以解决了!!

    2.1K20

    使用Jenkins一键打包部署SpringBoot应用,就是这么6!

    任何简单操作的背后,都有一套相当复杂的机制。本文将以SpringBoot应用的在Docker环境下的打包部署为例,详细讲解如何使用Jenkins一键打包部署SpringBoot应用。...Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行Jenkins:...使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码: docker logs jenkins 从日志中获取管理员密码: ? 选择安装插件方式,这里我们直接安装推荐的插件: ?...新增maven的安装配置: ? 在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了: ?...选择我们的maven版本,然后设置maven命令和指定pom文件位置: ? 之后添加一个执行远程shell脚本的构建,用于在我们的镜像打包完成后执行启动Docker容器的.sh脚本: ?

    1.6K11

    jenkins流水线搭建

    "] } EOF 允许docker守护进程的tcp访问,为了后续jenkins构建时调用,以生成docker镜像 [root@localhost ~]# vim /usr/lib/systemd/system...的在线验证,在终端再执行 docker exec -it jenkins /bin/sh -c "echo 127.0.0.1 www.google.com >> /etc/hosts" docker.../default.json 中定义了通过访问 google 来判断 jenkins 节点是否是在线状态 之后选择安装推荐的插件,进入插件安装界面,这个过程耗时会比较长,如果有插件安装失败可以重试 之后创建管理员用户...,一路确定后到主页 3.3 插件配置 dashboard -> 系统管理 -> 插件管理中安装ssh插件和Role-based Authorization Strategy插件,安装完成后重启jenkins...在系统管理->全局安全配置中启用基于角色的权限管理: 关闭代理,保存 分配管理员、运维和other三个角色,分别配置对应权限 将用户和角色绑定 4. gitlab# 4.1 启动容器# docker

    1.3K30

    使用Docker安装Jenkins

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。...系统配置:CentOS 7.2 Docker安装 请移步查看:CentOS 7 安装 Docker 安装Jenkins 首先不直接从Docker Store上直接Pull Jenkins 的 Image...出现以上 Successfully 内容代表安装Jenkins成功 4.在启动Jenkins时,需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下 mkdir -p...复制输出的内容,粘贴到Administrator password,输入 exit 退出容器,此时进行下一步你会看到此界面,点击 Install suggested plugins ?...进入主界面后如果看到右上角有错误的提示信息,那么请把你的Jenkins升级到最新版本,然后更新一下插件。 如果更新之后出现协议警告: ?

    1.8K20

    容器 & 服务:Docker 应用的 Jenkins 构建

    构建实战 一 概述 上一篇文章,我们介绍了一个基于Idea 和 Docker插件来构建SpringBoot应用的实例。...显然实际使用中,除了测试环境,几乎不可能只通过idea插件去创建一个应用的容器并直接提供单点、点对点的服务。...本章将结合之前的Jenkins基础,把应用改造为更接近真实场景的应用构建、发布过程。 二 回顾 再看一下这张图,是我们在demo中构建docker配置的内容,其中标红部分,是docker命令: ?...意味着,我们可以考虑把命令提出来,在Jenkins中执行构建镜像及创建容器、启动应用过程。...那么很容易判断,肯定是配置在jenkins中的deploy命令有问题,也就是上面的两条命令。

    78410

    测试开发实战|只需搞定Docker,环境问题再也不是测开路上的坑

    在系统上操作的任何东西都不是直接调用内核的,都需要经过系统调用,使用docker安装了操作系统的镜像软件,感觉像是在操作系统上运行,因此即使用的是Centos镜像,内核也有可能是Ubantu的,如下图所示...进程就会分配一个网络名称空间,进行网络的隔离 2、联合文件系统 能够给每一个容器提供单独的视图,达到文件目录的隔离,这样就不会访问到其他容器的文件 3、Cgroups 资源隔离,限定当前进程使用资源大小...docker pull jenkins ”,将命令复制到终端执行即可自动下载安装Jenkins的官方镜像了 注:这里有一个坑,在这里默认下载的都是最新的Jenkins镜像,但是最新版本很可能出现很多插件版本不兼容的情况...,如果出现建议换上经本人实测较为稳定兼容的一个版本2.164.3 docker pull jenkins/jenkins:2.164.3 下载安装好以后可通过 docker images 命令查看当前机器中的所有镜像...,如果不写将默认为 latest 使用 docker ps 可查看当前运行的所有容器( docker ps -s -a 可查看包括已经退出的和SIZE) 运行 docker run -d --name

    60020

    ​2019 DevOps 必备面试题——容器化和虚拟化

    什么是容器? 容器提供了从开发人员的笔记本电脑到测试环境、从类生产环境到生产环境一致的运行环境。...这是一个非常重要的问题,所以请确保回答不偏离主题,我建议你遵循以下格式: Docker 容器包括应用程序及其所有依赖项,但与其他容器共享内核,在主机操作系统的用户空间中作为独立进程运行。...Docker 容器基本上是 Docker 镜像的运行时实例。 Q6. 什么是 Docker Hub?...与其他技术相比,它可以在相同硬件上运行更多应用程序,使开发人员可以轻松地快速创建可立即运行的容器化应用程序,并使管理和部署应用程序变得更加容易。你甚至可以与你的应用程序共享容器。...你可以这样回答:当 Docker 容器退出时,我不会丢失我的数据。在你明确删除容器前,应用程序写入磁盘的任何数据都将保留在其容器中。即使在容器停止后,容器的文件系统仍然存在。

    2.4K10

    CVE-2019-1003000-jenkins-RCE复现

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。...Script Security and Pipeline 插件是Jenkins的一个安全插件,可以集成到Jenkins各种功能插件中。它主要支持两个相关系统:脚本批准和Groovy沙盒。...所以会造成具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxed Pipeline共享库内容的用户可以绕过沙盒保护并在Jenkins主服务器上执行任意代码...再次运行之后,docker ps -a查看能够发现环境实例存在,但是docker ps没有,上一条的命令显示环境一启动就退出了,通过日志命令docker logs container_id 排查: ?...实验的难点在于jenkins 2.152-alpine的安装搭建,并且漏洞的几个插件都已经被官方修复,在系统配置中安装的时候,security-script很容易被升级到最新版,利用就会失败!

    4.8K20

    docker下的Jenkins安装和体验

    版本是:17.03.2-ce; 准备文件映射路径 jenkins的容器启动后,重要的文件我们希望能保存在当前电脑,否则容器被损坏或者删除后就找不回这些文件了,因此要在当前电脑上准备一个目录作为文件映射,...注意文件夹权限问题,我这边准备的本机目录是/usr/local/work/jenkins,并且执行了chmod 777 /usr/local/work/jenkins以确保docker进程有权限读写此目录...; 启动容器 在控制台执行以下命令,docker会去hub.docker.com下载最新的jenkins官方镜像,然后启动一个名为j01的容器,并且将容器的8080和50000端口直接映射到本机的8080...勾选后点击下面的“直接安装”按钮,即可安装maven插件,如下图: 配置SSH登录github 后面的实战中,我们会将代码放到github上,所以此处要做ssh登录的配置,假设您在git上的注册邮箱是..."abcdef@gmail.com",账号是"abcdef",您需要执行以下步骤: 在控制台执行以下命令登录到jenkins容器: docker exec -it j01 /bin/bash 登录到容器后

    37630

    Docker in Docker容器化版的“盗梦空间”

    Docker in Docker(DinD) 是一种容器虚拟化嵌套技术,它允许用户在容器内部运行 Docker 容器,层层嵌套,从而实现更复杂的容器化操作和构建环境 。...03、方案说明 为了使 Jenkins Slave 能够使用 Docker 命令,我们需要将 Docker 二进制文件和 docker.sock(套接字)映射到容器中。...我们并不需要在容器内启动一个 Docker 进程,因为只要 Docker 的二进制文件能够通过 docker.sock 与守护进程通信即可。 ‍ 如上图,我们大致会执行以下步骤: 1....将K8S Node的/var/run/docker-ci中的docker.sock和docker映射到Jenkins Slave中 04、操作步骤 将下面内容保存为docker-ci-daemonset.yaml...path: /var/run/docker-ci # 创建一个目录,避免将/var/run的所有文件挂载到容器中 好了,接下来就是修改Jenkins的配置,我们在需要用到docker指令的容器配置模版加上

    21710
    领券