war包直接启动jenkins
java -jar jenkins.war --httpPort=8081
访问:http://:8081/
部署到tomcat中
1.准备一台tomcat 服务器
2. 将 jenkins.war 复制到 $tomcat_home/webapps/ 下 删除原有的 $tomcat_home/webapps/ROOT目录
3. 将 jenkins.war 重命名为 ROOT.war
4. 启动tomcat
5. jenkins服务地址 http://<tomcat_ip>:<tomcat_port>/
docker启动
1.需要找一台装好了docker的Linux机器
2. 拉取 jenkins 的docker镜像:docker pull jenkins
3. 在宿主机上创建一个目录用于存储 jenkins 运行数据,比如 /home/jenkins
4. 启动镜像:docker run --name myjenkins -p 8080:8080 -p 50000:50000 jenkins
5. jenkins服务地址 http://<Linux_IP>:8080/
解决老版本jenkins下载插件问题:
创建新版Jenkins的Docker images
Dockerfile
FROM jenkins:latest
MAINTAINER tester "tester@hogwarts.com"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN rm -f /usr/share/jenkins/jenkins.war
ADD jenkins.war /usr/share/jenkins/
EXPOSE 8080
EXPOSE 50000
ENV JAVA_OPTS=-Duser.timezone=GMT+08
CMD ["jenkins.sh"]
运行:
docker build -t jenkinsnewversion .
ssh-key 证书配置
- 1.生成 ssh keys
ssh-keygen -t rsa -C "youremail@example.com"
-
2.github添加SSH keys
将id_rsa.pub里面的内容复制下来,在github上的settings里面找到SSH and GPG keys,SSH keys 点击New SSH key粘贴即可,title唯一随便填。 -
3.测试
运行
ssh git@github.com
出现
Hi XXXXX! You’ve successfully authenticated, but GitHub does not provide shell access.
说明成功!
- 登录docker 里面的命令:
docker exec -it <docker container name or ID> bash
- 验证用户名密码ssh 登录 :
ssh username@<ip or hostname>
删除镜像没有权限;
- 解决方案:
Dockerfile 构建的时候 没有删除权限的问题
总方法:曲线救国法
-
首先用默认的jenkins docker镜像启动docker container 实例,启动的时候加入-u 0 保证 docker 实例里面是root用户
启动命令: docker run -d --name jenkinsRoot -u 0 jenkins -
将 jenkinsRoot docker container实例保存成一个新的docker镜像,命名为 jenkinsroot
保存命令: docker commit jenkinsRoot jenkinsroot -
再基于 jenkinsroot 来构建新的镜像,权限问题就不会困扰了,Dockerfile如下
FROM jenkinsroot
MAINTAINER tester "tester@hogwarts.com"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN rm -f /usr/share/jenkins/jenkins.war
ADD jenkins.war /usr/share/jenkins/
EXPOSE 8080
EXPOSE 50000
ENV JAVA_OPTS=-Duser.timezone=GMT+08
CMD ["jenkins.sh"]