zoukankan      html  css  js  c++  java
  • docker 下安装及使用jenkins 学习总结

    一、docker 命令总结

    exec 进入docker 容器  docker exec -it 775c7c9ee1e1 /bin/bash

    二、docker 安装

    1、拉去镜像    docker pull jenkins

    2、创建映射本地数据卷的路径为/data/jenkins_home/    mkdir -p /data/jenkins_home/

    3、修改容器中jenkins用户操作权限       chown -R 1000:1000 /data/jenkins_home/

    4、创建容器 

    docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins
    docker run --name jenkins2 -p 8082:8080 -p 50002:50000 -v /var/run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -d jenkinsci/blueocean
    -d 标识是让 docker 容器在后台运行
    --name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
    -p 8040:8080 端口映射,我本地的8080被占用了,所以随便映射了一个8040
    -p 50000:50000 端口映射
    -v /data/jenkins_home:/var/jenkins_home 绑定一个数据卷,/data/jenkins_home是刚才创建的本地数据卷
    -v /var/run/docker.sock:/var/run/docker.sock 使得容器中可以操作docker

    三、docker 修改已经启动的容器的挂载目录及端口(防止已经在使用的容器还要重新通过镜像启动新的容器)

    1、停止docker服务
    systemctl stop docker.service(关键,修改之前必须停止docker服务)
    2、vim /var/lib/docker/containers/container-ID/config.v2.json
    修改配置文件中的目录位置,然后保存退出
    "MountPoints":{"/home":{"Source":"/docker","Destination":"/home","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"//docker/","Target":"/home"}}}

    四、docker 启动容器并挂载 maven目录,profile配置文件,docker.sock 等
     docker run --name jenkins3 -p 8083:8080 -p 50003:50000 -v /var/run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -v /usr/local/maven/:/usr/local/maven/ -v /usr/local/mavenrepo/:/usr/local/mavenrepo/ -v /etc/profile:/etc/profile  -d jenkinsci/blueocean

    五、使用的问题总结
    1.目录权限的问题导致jenkins无法构建
    2.docker 容器中mvn环境的问题,需要执行 source /etc/profile
    3.maven 构建时无法连接远程仓库,选择其他远程仓库尝试

                    <mirror>

                         <id>alimaven</id>
                         <mirrorOf>central</mirrorOf>
                         <name>aliyun maven</name>
                         <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
                     </mirror>

      4.jenkins shell mvn 命令不识别

    在jenkins shell中执行没有加载/etc/profile  .bash_profile中的环境变量
    需要在shell 命令前面加一条申明:#!/bin/bash -il





  • 相关阅读:
    整理打印PI值
    使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)
    ThinkPHP+jQuery EasyUI Datagrid查询数据的简单处理
    ThinkPHP学习(三)
    Apache+PHP配置PATHINFO的一个小问题
    ThinkPHP学习(二)
    接口签名工具类
    RSA加密和解密工具类
    kafka项目中踩到的一个坑(客户端和服务器端版本不一致问题)
    自己实现字符串转整数(不使用JDK的字符串转整数的方法)
  • 原文地址:https://www.cnblogs.com/lufei33180/p/13914842.html
Copyright © 2011-2022 走看看