使用docker部署jenkins+nodejs+jdk+gradle

最近改用docker部署jenkins,踩了不少坑,走了不少弯路,把流程整理出来希望能让大家少走一些弯路

安装docker服务

  1. 安装Docker CE社区免费版
    1.1 安装一些必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加软件源信息:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 更新 yum 缓存:

yum makecache fast

1.4 安装 Docker-ce:

yum -y install docker-ce

1.5 启动 Docker 后台服务

systemctl start docker

1.6 添加开机启动

systemctl enable docker.service

1.7 为docker添加私有仓
在/etc/docker文件夹下下创建daemon.json文件
添加内容:

{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

1.8 重启dockers服务

systemctl restart docker

安装jenkins

运行jenkins,在运行的时候如果没有镜像会自动下载镜像运行容器.
需要稍等一会

运行容器

docker run  --rm  -u root   -p 9898:8080 -v /data/jenkins-data:/var/jenkins_home  -v /var/run/docker.sock:/var/run/docker.sock  -v "$HOME":/home  jenkinsci/blueocean

使用docker命令查看日志获取初始密码

docker logs jenkins

下载centos7.6制作打包发送环境

在nodejs打包环境上吃亏不少,很多现成的nodejs环境都无法使用,包括jenkins推荐的版本,都无法打包vue,都会卡在npm依赖安装那里,如果你们可以那真是羡慕你们

docker pull lambdaexpression/centos7.6.1810

运行容器并在容器中安装打包需要的nodejs,jdk,ssh

jdk安装我使用的方式是软连接

ln -s /usr/java/jdk1.8.0_191/bin/java /usr/local/bin/java
ln -s /usr/java/jdk1.8.0_191/bin/javac /usr/local/bin/javac

nodejs安装

yum update
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

如果没安装ssh需要安装ssh

yum install -y openssh-server
image.png

当配置好环境把环境容器制作成镜像
我是使用的是commit

先使用docker ps 获取到正在运行容器的id
再使用docker commit 容器id node:v1 提交成一个新镜像

在git里编写jenkinsfile文件

重点

1.制作一个名为gradle的gradle缓存存放容器,这样可以避免每次java打包都会下载依赖,提高打包速度

docker run -v /root/.gradle:/root/.gradle --restart=always --name gradle -dit debian

2.-v /root/.ssh:/root/.ssh 把宿主机的公钥映射到打包环境里,可以使用宿主机免密传输
3.在Jenkinsfile里使用docker参数来启动已经编写好的node:v1镜像打包环境

pipeline {
    agent {
        docker {
            image 'node:v1' 
            args '-p 3000:3000 --name node -v /root/.ssh:/root/.ssh --volumes-from gradle ' 
        }
    }
}

你可能感兴趣的:(使用docker部署jenkins+nodejs+jdk+gradle)