使用 docker-compose 快速安装Jenkins
本文分享在 docker 环境中,使用 docker-compose.yml 快速安装 Jenkins,以及使用主机中的 docker 打包推送镜像到阿里云
博客园的第100篇文章达成,2019的第一篇文章,新的开始,新的征程,一起迎接崭新的世界。
系统环境:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
当前 docker 版本:Docker version 18.09.0
当前 docker-compose 版本:docker-compose version 1.23.2
docker-compose.yml
version: '3'
services:
docker_jenkins:
restart: always
image: jenkins/jenkins:lts
container_name: docker_jenkins
ports:
- '8080:8080'
- '50000:50000'
volumes:
- ./data/:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
创建 data 目录并设置权限
mkdir ./datasudo chown -R 1000 ./data//把当前目录的拥有者赋值给uid 1000
若已启动则需要重建下服务
构建Jenkins服务
docker-compose up -d
...访问 http://ip:8080 进行初始化...
jenkins在docker中安装后查看登录令牌
使用命令 docker logs 容器名称/容器ID 查看访问日志,即可查看到登录令牌
若未设置账户,如何查看admin的密码
一不小心,未创建新的账户,可通过查看挂载目录下的 /secrets/initialAdminPassword 中的 Key 作为密码登录
账户:admin
密码:cat ./data/secrets/initialAdminPassword
docker build 无权限的解决办法
在 docker-compose.yml 已将主机 docker 映射到容器内,故使用 docker -v 已经能够查看到版本号
+ docker -v
Docker version 18.09.0, build 4d60db4
+ docker build -t test/test.admin.vue:v3 .
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=c0j8whn50ubpyukeblzkng7cq&shmsize=0&t=test%2Ftest.admin.vue%3Av3&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied
Build step 'Execute shell' marked build as failure
但是当使用 docker build -t . 命令的时候依旧无法执行,提示无权限( permission denied)
这个问题之前将Jenkins直接装在linux主机的时候也遇到过,在shell脚本输入框顶部加上 #!/bin/bash -ilex 即可
如果依旧不行,可执行(赋予读写执行权限):sudo chmod 777 /var/run/docker.sock 注:服务器重启后可能权限会失效
#!/bin/bash -ilex
+ docker -v
Docker version 18.09.0, build 4d60db4
+ export DOCKER_IMAGE_NAME=test/test.admin.vue:v3
+ docker build -t test/test.admin.vue:v3 .
关于 docker 镜像的构建
注册阿里云账号,并申请阿里云的容器镜像服务,创建命名空间(公/私有,可自动创建仓库),设置下 Registry 登录密码,随便新建一个仓库,查看仓库详情可查看推送 docker 的相关信息
创建好账号信息后,即可在 Jenkins 中构建推送。
可参考以下脚本,脚本环境变量说明
DOCKER_IMAGE_NAME:镜像名称(命名空间/镜像名:版本号)
DOCKER_CLOUD_URL: 镜像源
ALIYUN_USERNAME:阿里云用户名
ALIYUN_USERPWD:阿里云 Docker Registry 密码
#!/bin/bash -ilex
docker -v
echo '打包镜像'
export DOCKER_IMAGE_NAME=test/$JOB_NAME:v$BUILD_NUMBER
docker build -t $DOCKER_IMAGE_NAME .
echo '推送镜像'
export DOCKER_CLOUD_URL=registry.cn-hangzhou.aliyuncs.com
docker login --username=$ALIYUN_USERNAME --password=$ALIYUN_USERPWD $DOCKER_CLOUD_URL
docker tag $DOCKER_IMAGE_NAME $DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME
docker push $DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME
echo '删除镜像'
docker rmi $DOCKER_IMAGE_NAME
docker rmi $DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME
参考
- https://github.com/jenkinsci/docker/blob/master/README.md
- https://www.cnblogs.com/leolztang/p/6934694.html
使用 docker-compose 快速安装Jenkins的更多相关文章
- 使用 Docker Compose 快速构建 TiDB 集群
本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...
- linux下快速安装jenkins
Linux下快速安装Jenkins 建议使用 FileZilla 工具简化以下步骤中移动.环境变量配置等步骤. 1 软件下载 l Java:jdk-7u17-linux-x64.tar.g ...
- docker快速安装jenkins
用过docker的人,可能真的很难忍受再一步步二进制安装了,好了话不多说,感慨一下jenkins实现自动化发布构建真的很方便. 推荐一个学习的好地方https://m.w3cschool.cn/jen ...
- [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境
快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...
- 利用Docker Compose快速搭建本地测试环境
前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用.然后用一个简单命令就能启动所有的服务.Compose编排 ...
- node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins
前言 每次项目代码更新后都要重新部署,如果只有一台服务器还好. 但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了. 这里用几篇文章来记录一下如何使用Jenkins,Doc ...
- Docker Compose 介绍安装
Compose介绍 Compose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,biubiu使用什么镜像 ...
- 26. docker compose 的安装 和 基本使用
1. 安装 docker compose https://docs.docker.com/compose/install/ 选择linux 即可 sudo curl -L "https:/ ...
- 手把手教你 Docker Compose的安装和使用
一.Docker Compose是什么? Docker Compose是一个工具,用于定义和运行多容器应用程序的工具: Docker Compose通过yml文件定义多容器的docker应用: Doc ...
随机推荐
- LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number
100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...
- Sublime text使用快捷键
作者:gyfnice链接:https://www.zhihu.com/question/24896283/answer/34327939来源:知乎著作权归作者所有,转载请联系作者获得授权. 代码片段 ...
- angularJS--多个控制器之间的数据共享
为了在控制器之间共享数据,需要在服务中添加一个用来储存用户名的方法.记住,服务在 应用的生命周期内是单例模式的,因此可以将用户名安全地储存在其中. <!DOCTYPE html> < ...
- github代码搜索技巧
github是一个非常丰富的资源,但是面对这丰富的资源很多人不知到怎么使用,更谈不上怎么贡献给他,我们需要使用github就要学习使用他的方法,学会了使用的方法,接受了他的这种观点我们才会慢慢的给他贡 ...
- Python 字符串大小写转换
以下代码演示了如何将字符串转换为大写字母,或者将字符串转为小写字母等: # Filename : test.py # author by : www.runoob.com str = "ww ...
- 测试网页时需要添加等待的情形 (Selenium)
测试网页时需要添加等待的情形: 1. 网页跳转 2. DOM结构发生改变.
- 【codeforces 698B】 Fix a Tree
题目链接: http://codeforces.com/problemset/problem/698/B 题解: 还是比较简单的.因为每个节点只有一个父亲,可以直接建反图,保证出现的环中只有一条路径. ...
- 【爆料】-《悉尼科技大学毕业证书》UTS一模一样原件
☞悉尼科技大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归 ...
- python3——模块
今天去听一个关于创业的讲座,心疼自己在那个地方站了 一个多小时(QAQ)我是心疼自己傻呀! 手机打王者之后就没有电了,一直站在那儿! 不过最后还是结束了,以后你们也会有很多讲座的,希望学弟学妹好好听讲 ...
- js操作中要去注意的一些问题
1.js中注意问题 font-size 改成fontSize padding-top 改成paddingTop js中不认识-,所以要以小驼峰方式操作属性或者以[" "]方式,例[ ...