使用Jenkins作为持续集成平台,结合Docker容器,发布项目到AWS环境的CI/CD持续集成环境搭建。
一、准备环境
-
安装Jenkins 在本地服务器上,安装Jenkins服务。
-
安装Jenkins plugins 用于Docker集成的插件:plugins.jenkins.io/docker-buil…
-
安装aws cli docs.aws.amazon.com/cli/v1/user… 下载对应的安装包。
# unzip awscli-budle.zip
# cd awscli-bundle
# ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
- 安装Docker
# yum remove docker-client
# yum remove docker-client-latest
# yum remove docker-common
# yum remove docker-latest
# yum remove docker-latest-logrotate
# yum remove docker-logrotate
# yum remove docker-engine
# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.iosudo yum install -y yum-utils device-mapper-persistent-data lvm2
# yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.1-1.c57a6f9.el7.noarch.rpm
# yum install docker-ce docker-ce-cli containerd.io
# vi /etc/yum.repos.d/docker-ce.repo
Add the below content on the top.
[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7
# yum install slirp4netns
# yum install fuse-overlayfs
# yum install docker-ce docker-ce-cli containerd.io
二、构建Jenkins Jobs
- Compile code 在Job configration中,使用Source code management配置code仓库。支持的仓库类型:
- CVS
- Git
- Perforce (需要安装plugin)
- Build Docker Image 在job confirgration中,添加Docker build and publish,配置参数。
3. Push Docker Image to AWS ECR
REPO_URI=**********.dkr.ecr.us-west-2.amazonaws.com
CMD_LOGIN=`aws ecr get-login --no-include-email --region us-west-2 --profile default`
echo $CMD_LOGIN
$CMD_LOGIN
docker tag ${PRIVATE_REPO}/${SERVICE_NAME}:latest ${REPO_URI}/${SERVICE_NAME}:latest
docker push ${REPO_URI}/${SERVICE_NAME}:latest
总结:实现从源码到部署的整套自动化流程,Docker Image被push到ECR上。