Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器

宿主机安装docker(省略)

宿主机安装maven

下载二进制包解压到/var/docker_data/jenkins/jenkins_home下面

https://maven.apache.org/download.cgi

Jenkins镜像安装

  下载Jenkins镜像(一般都是Ubuntu版)

FROM jenkins

USER root
#清除了基础镜像设置的源,切换成腾讯云的jessie源
#使用非腾讯云环境的需要将 tencentyun 改为 aliyun
RUN echo ‘‘ > /etc/apt/sources.list.d/jessie-backports.list   && echo "deb http://mirrors.tencentyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list   && echo "deb http://mirrors.tencentyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list   && echo "deb http://mirrors.tencentyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update

ARG dockerGid=999

RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group

  

  制作镜像

docker build -t jenkins:ubuntu .

  启动镜像

docker run --name jenkins --privileged -d -p 8080:8080 -p 5000:5000 -v /etc/localtime:/etc/localtime -v /var/docker_data/jenkins/jenkins_home:/var/jenkins_home -v /var/docker_data/jenkins/settings:/var/settings  -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker --env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/jenkins_home/maven/bin  c2997ba18d6c

  目录说明:

/var/jenkins_home:Jenkins用户的家目录/var/jenkins_home/workspace:Jenkins主要工作目录,创建的视图、gitlab拉下来的代码都在这个下面

  先按推荐安装再安装插件:

  • Maven Integration plugin
  • docker-build-step
  • Docker plugin
  • Gitlab Hook Plugin
  • GitLab Plugin

  Jenkins系统配置:

  系统管理-->系统设置

  配置远程主机的账号密码

配置gitlab

GitLab API token获取

在gitlab页面中鼠标点击右上角头像点击settings,访问令牌创建个人访问令牌

Jenkins全局工具配置

系统管理-->全局工具配置

配置jdk路径

jenkins镜像中的jdk应该是yum安装的,所有路径需要自己去找(/usr/lib/jvm/java-8-openjdk-amd64)

root@68decdef1ec3:~# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Jul 17  2018 /usr/bin/java -> /etc/alternatives/java
root@68decdef1ec3:~# ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Jul 17  2018 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

  

maven配置(这个是从宿主机映射过来的)

配置凭据

创建自动打包job

源码管理

构建触发器

构建build(打包)根据pom文件打包(clean package -Dmaven.test.skip=true)

最后运行脚本

参考别人脚本

echo ‘================打包完成,开始复制================‘
cd /var/lib/jenkins/workspace/gpsserver
scp Dockerfile-gps  root@hadoop1:/data/public/gpsserver/
scp server-gps/target/gpserver.jar  root@hadoop1:/data/public/gpsserver/
echo ‘================复制文件完成================‘
ssh root@hadoop1 << remotessh
echo ‘================进入主机hadoop1 shell================‘
cd /data/public/gpsserver
echo ‘================停止容器 gpsserver================‘
sudo  docker stop gpsserver
echo ‘================删除容器 gpsserver================‘
sudo  docker rm gpsserver
echo ‘================删除镜像 gpsserver:latest================‘
sudo  docker rmi gpsserver:latest
echo ‘================build 镜像 gpsserver:latest================‘
sudo docker build -t gpsserver:latest -f ./Dockerfile-gps .
echo ‘================运行容器 gpsserver================‘
sudo docker run --name=gpsserver -e JAVA_OPTS=‘  -Dspring.profiles.active=prod ‘ --restart always -it -d -p 10111:10111 -p 15678:15678  -v /data/public/gpsserver/logs:/logs gpsserver:latest

echo "finished!"
exit  ###退出远程机器
remotessh  ###结尾哦
echo ‘================结束远程启动================‘

  

原文地址:https://www.cnblogs.com/sonfer/p/10530481.html

时间: 2024-10-09 21:06:03

Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器的相关文章

windows环境下jenkins+gradle+Android 自动打包部署

第一步,搭建jenkins环境 1.安装下载jenkins jenkins运行依赖Java开发环境,安装jenkins前,先安装好JDK,并配置好环境变量 进入jenkins 的官网 https://jenkins.io/ , 根据搭建平台的不同下载,我使用的是 windows 平台 2.配置 Jenkins 安装完成后,在浏览器中访问 : http://localhost:8080/, 你将会看到如下界面 ,然后开始配置 Jenkins. 3.Jenkins 插件安装和超级管理员配置 填写完密

Docker微服务-Jenkins+Gitlab+Maven+Shell自动化构建实施案例

* 环境:CentOS7代码仓库:Gitlab持续集成代码更新:Jenkins构建打包:Maven镜像自动交付脚本:Shell 基础环境软件安装:Gitlab.Jenkins.Maven配置,安装参考网上,这里安装略,重点介绍项目持续集成和镜像交付.结合上一博文:https://blog.51cto.com/10874766/2353577这里配置了两个基础服务容器的自动化构建,一个常规业务服务容器的自动化构建,其他的容器服务持续集成类似操作,这不做重复操作. * 创建基础持续集成项目-conf

MAC上搭建Jenkins + Android + IOS自动开发部署环境

因为MAC是大小写不敏感的操作系统,很多Linux命令不支持,所以首先要创建大小写敏感的操作系统. 设置静态IP 打开"System Preferences..." 点击"Network" 设置静态IP 设置Terminal 在"Utilities"中找到Terminal,点击"Terminal" 右击Terminal图标,选择"Options" -> "Keep in Dock"

jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理

一.用户管理 jenkins自身带有权限管理,入口:系统管理-->全局安全配置,这里的权限配置太过简略,没有角色的概念,显然无法满足我们复杂的需求,所以在这个时候引入了 Jenkins 的一个插件:Role-based Authorization Strategy 安装插件:Role-based Authorization Strategy,插件管理-->可选插件搜索一下点击安装,安装完后重启就可以使用该插件 系统管理-->全局安全配置,然后用重新登录一下 系统管理-->Manag

【iOS】Jenkins Gitlab持续集成打包平台搭建

Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 1. 相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考维基介绍. Gitlab GitLab是一个利用R

jenkins+gitlab+maven+tomcat持续集成环境安装配置

jenkins+gitlab+maven+tomcat,该环境主要实现自动构建部署java web应用. 其工作流程是:提交代码到gitlab--jenkins触发构建任务--maven编译打包--jenkins将war包部署到tomcat. 安装JDK #安装jdk1.8 tar zxvf jdk-8u77-linux-x64.gz #设置环境变量 #vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_77 export JAVA_BIN=

基于docker环境搭建kafka集群(三台真机之间)

环境基于docker,三台物理主机192.168.0.27.192.168.0.28.192.168.0.29,每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点,容器之间的网络采用host模式 1.拉取镜像 2.启动容器 step1. 创建配置文件zoo.cfg并替换容器内的该文件,不同的镜像有可能zoo.cfg位置不同 # The number of milliseconds of each tick tickTime=2000 #

Jenkins+git+webhook自动触发部署和测试任务

Jenkins+git+webhook自动触发部署和测试任务 需求: 目前上线前会将需要上线的代码push到release分支,然后由人工填写参数点击触发jenkins上的任务.希望这个过程能完成自动化,只要有人往release上推代码,就自动跑部署release分支并测试 解决办法及步骤: 1.在jenkins里需要自动触发的job里的"源码管理"部分添加设置,如下图.填好git仓库url和需要检测的分支名称 注意事项: a.在填url的时候可能会提示找不到命令的错误,遇到这个错的解

Jenkins+GitLab+dotnet+Python自动化部署.Net Core项目

部署环境与流程1) Jenkins是java产品,需安装JDK8.由于.netFreamwork项目自动化时是基于Windows,所以继续使用Windows server 2012环境下的已有的Jenkins,部署.构建dotnet Core项目继续在Windows平台下操作.2) .NET Core SDK:2.2.402.dotnet build构建.3) 代码仓库GitLab.4) .NET Core服务端CentOS7部署环境流程: 需求一个项目下分两个子项目,而子项目需分别进行构建部署