docker+jenkins+阿里云容器服务自动化部署
一、在服务器上安装docker
请参考我的这篇文章:ubuntu16.04中下载安装docker
二、在阿里云容器服务构建镜像
1、进入阿里云容器镜像服务
地址:容器镜像服务
根据文档先创建一个命令空间,然后就可以创建一个你项目的镜像仓库了
根据提示创建完镜像仓库,然后进入构建,并添加规则
这里的Dockerfile是你的项目根目录下的Dockerfile,文件名一定要相同。镜像版本根据自己情况写。
然后就可以点击立即构建来构建镜像了。
三、在服务器上安装Jenkins(我的是ubuntu)
1、安装java环境
Jenkins基于Java, 所以需要先安装java。
首先,在windows下载好jdk1.8,然后通过ftp上传到服务器
解压java到相应目录,我一般习惯把安装的软件放到目录/usr/local下。
tar -zxvf jdk-8u181-linux-x64.tar.gz /usr/local
编辑环境变量,在/etc/profile文件中添加环境变量,Linux的所有用户都可以使用。
vim /etc/profile
在文件最后添加内容如下:
JAVA_HOME=/usr/local/java/jdk1.8.0_181
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
重新加载环境变量的配置文件:source /etc/profile
输入以下命令,显示如图,则表示安装成功。
2、安装Jenkins
包含在默认Ubuntu软件包中的Jenkins版本往往落后于项目本身的最新版本。 为了利用最新的修复和功能,我们将使用项目维护的软件包来安装Jenkins。
1)首先,我们将存储库**添加到系统。wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
2)添加**后,系统将返回OK 。 接下来,我们将Debian包存储库地址附加到服务器的sources.listecho deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
3)当这两个都到位时,我们将运行update ,以便apt-get将使用新的存储库:sudo apt-get update
4)最后,我们将安装Jenkins及其依赖项:sudo apt-get install jenkins
如果启动时遇到报错ERROR:No Java executable found in current PATH: /bin:/usr/bin:/sbin:/usr/sbin
需要给java路径建立一个软链接ln -s /usr/local/jdk1.8/bin/java(换成对应你自己的) /usr/bin/java
3、安装简介
通过上面的安装
1)Jenkins将作为一个Linux守护进程
2)创建一个名为Jenkins的Linux用户
3)生成日志文件 /var/log/jenkins/jenkins.log
4)Jenkins 默认端口是8080,在配置文件/etc/default/jenkins中可以修改。
4、设置Jenkins
使用服务器域名或IP地址访问Jenkins的默认端口8080:http:// ip_address_or_domain_name :8080
我们应该看到“解锁Jenkins”屏幕,需要输入密码
回到服务器中,输入以下命令查看初始密码:cat /var/log/jenkins/jenkins.log
复制日志中的32位字符串到jenkins解锁窗口中,然后下一步点击“安装建议的插件”选项,等待插件的安装
安装完成后,系统将提示您设置第一个管理用户。 可以跳过此步骤,并使用上面使用的初始密码作为admin继续,但是我们将花一点时间创建用户。
创建完用户后,我们的jenkins就安装好了。
5、新建任务
点击新建任务,然后选择流水线任务
进入任务配置,写写一个描述,然后选择github项目,并输入github项目地址
然后根据项目输入pipeline脚本:
pipeline脚本:
pipeline {
agent any
stages {
stage('启动前准备') {
steps {
echo 'remove image'
// 停止容器
sh 'docker stop canary(启动时重命名的镜像名)'
// 删除容器
sh 'docker rm canary'
// 删除镜像
sh 'docker rmi 从阿里云容器服务获取的镜像名(记得带上版本)'
}
}
stage('获取镜像') {
steps {
echo 'get image'
sh 'docker login --username=阿里云账号名 registry.cn-hangzhou.aliyuncs.com --password=阿里云密码'
sh 'docker pull 从阿里云容器服务获取的镜像名(记得带上版本)'
}
}
stage('启动服务') {
steps {
echo 'start simple-beauty-front'
sh 'docker run -d -p 8081(启动时的服务器端口):80(启动时的容器暴露端口) --name canary(重命名) -e VIRTUAL_HOST=(域名) 从阿里云容器服务获取的镜像名(记得带上版本)'
}
}
}
}
上一篇: Docker数据卷
下一篇: docker 学习笔记——第四集(网络)
推荐阅读
-
在阿里云服务器windows server2012r iis上部署.net网站
-
阿里云服务器CentOS 6.3下快速安装部署 LAMP 、vsftpd 环境的方法
-
阿里云ECS服务器部署django的方法
-
Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
-
详解把Node.js项目部署到阿里云服务器(CentOs)
-
阿里云esc服务器Docker部署单节点Mysql的讲解
-
.Net Core in Docker - 使用阿里云Codepipeline及阿里云容器镜像服务实现持续交付/部署(CD)
-
阿里云服务器上部署去中心化应用-pet shop
-
小白第一次在阿里云服务器上部署web项目
-
DevOps与阿里云容器服务(二)