zoukankan      html  css  js  c++  java
  • Centos7 docker部署jenkins及报错问题解决

    Jenkins部署:

    //下载镜像
    docker pull jenkins/jenkins
    //开放指定的防火墙端口
    firewall-cmd --zone=public --add-port=8000/tcp --permanent
    //创建本地挂载目录
    mkdir -p /home/docker/jenkins
    //需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
    执行如下命令即可:
    chown -R  1000:1000 /home/docker/jenkins

    //运行启动Jenkins

    docker run -d -p 8000:8080 -v /home/docker/jenkins:/var/jenkins_home --name jenkins --restart=always jenkins/jenkins

    示例:docker run --privileged -id -p 9999:8080 --name=jenkins05 myjenkins:3.0 /usr/sbin/init

    docker run -d -p 8000:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --restart always --privileged=true  -u root jenkins

    查看密码:docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword

    -p : 映射端口,宿主机端口:容器端口

    -v : 挂载,宿主机目录:容器目录

    --name : 自定义容器名

    -u : 权限用户名

    --privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。

    /usr/sbin/init  >>>后面加 /usr/sbin/init表示给容器授权root权限,使容器能够使用root权限下的命令

    给运行中的容器增加root权限:

    首先你的container得正在运行。

    可通过sudo docker container ls查看容器的CONTAINER ID

    最后执行命令(其中848669a8722b为上面查到的CONTAINER ID)

    sudo docker exec -ti -u root 848669a8722b bash

    查看容器日志

    docker logs -f jenkins

    查看容器运行

    docker ps

    之后浏览器输入  http://你的ip地址:8000

    进入之后需要输入密码,在命令行使用如下命令获取密码

    cat /home/jenkins/secrets/initialAdminPassword        查看密码

    之后会进入jenkins安装插件页面,

    这里选择安装推荐插件就可以了;

    接下来就是进入jenkins首页,这里使用前需要配置一些基础的maven和jdk;

     

    点击进入配置页面:

    解释一下我这里为什么是/var/jenkins_home/

    因为我首先jenkins是安装在docker里的,这时候使用的就是docker里的路径,

    我们上面运行jenkins的时候,看我标红的地方;

    这里我的jdk是复制了一份放在/home/jenkins/下面的,所以这里路径就可以直接这么写了;

    注意:这里是JAVA_HOME,所以不要加bin目录;

    接下来配置maven,跟jdk一样;

    至此,基本配置都已经好了。

    接下来创建你新项目吧;

    对了,默认的推荐插件是没有maven项目的,所以你可以在插件市场里搜索一下maven;

     然后去可选插件里搜索:

     右上角的搜索框输入:Maven Integration plugin

    找到之后直接安装,然后重启jenkins就可以了;

    重启jenkins可以直接在浏览器地址栏操作:

    http://你的ip地址:8000/restart

    这样就OK了;

     

    报错解决办法:
    docker 运行后, 执行docker logs -f myjenkins时报错:

    touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

    需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
    执行如下命令即可:

    chown -R 1000:1000 /home/docker/jenkins


    转载:
  • 相关阅读:
    在 Delphi 下使用 DirectSound (8): IDirectSound8.DuplicateSoundBuffer() 与 IDirectSoundBuffer.GetStatus()
    在 Delphi 下使用 DirectSound (10): 测试合唱效果器 IDirectSoundFXChorus8
    在 Delphi 下使用 DirectSound (7): 播放资源文件中的 Wave 数据
    在 Delphi 下使用 DirectSound (13): 测试回声效果器 IDirectSoundFXEcho8
    The process could not execute 'sp_replcmds' on ‘Server Name’
    C盘空间用完竟然造成applicationHost.config文件内容为空
    推荐阅读20101018
    SQL Server 2008 R2作业中无法新建与修改步骤的问题
    ASP.NET中获取URL重写前的原始地址
    在.NET 4中用IIS部署WCF就这么简单
  • 原文地址:https://www.cnblogs.com/yangzp/p/13588903.html
Copyright © 2011-2022 走看看