流水线-阿里云镜像仓库

一、阿里云镜像仓库的创建

已经创建好了的阿里云镜像仓库 密码lzl123456

1.docker镜像制作

192.168.56.10登录,也就是电商的数据库的docker

配置nginx

配置实现动静分离nginx

在这里插入图片描述

如何把nginx的静态资源放入k8s?

把nginx打包成docker镜像,
怎么查看nginx的静态资源呢?

进入nginx容器

docker exec -it nginx /bin/bash

查看nginx挂载的静态资源

cd /usr/share/nginx/html/static
ls

在这里插入图片描述

制作nginx镜像
docker commit -a “leifengyang” -m “nginxxx” 容器 id mynginx:GA-2.0

1 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
2 OPTIONS 说明:
1) -a :提交的镜像作者;
2) -c :使用 Dockerfile 指令来创建镜像;
3) -m :提交时的说明文字;
4) -p :在 commit 时,将容器暂停。
docker commit -a "lzl" -m "nginx" 5ab9431b91cd lzl123456/gulimall-nginx:v1.0

5ab9431b91cd 通过docker ps, 获取nginx的容器id
在这里插入图片描述

把nginx镜像提交到dockerhub

登录dockerhub

docker login -p 123456789 -u lzl123456

-u : dockerhub 用户名
-p: dockerhub 密码
把nginx镜像提交到dockerhub

docker push lzl123456/gulimall-nginx:v1.0

在这里插入图片描述

切换镜像名称

docker tag 老的镜像名称 新的镜像名称
再push新的镜像

docker tag lzl123456/nginx:v.1.0 lzl123456/nginx:v2.0

push lzl123456/nginx:v2.0

如何切换到阿里云镜像仓库?

由于dockerhub使用国外的镜像仓库,最好切换到国内的镜像仓库。如阿里云

2.配置nginx的负载均衡

配置nginx上游服务器的负载均衡

切换到nginx配置文件
cd /mydata/nginx/conf

备份nginx配置文件
cp nginx.conf nginx.conf.bak

修改nginx配置文件,nginx.conf
vi nginx.conf

   upstream gulimall {
      server 192.168.56.100:31003;
      server 192.168.56.101:31003;
      server 192.168.56.102:31003;
   }
   
192.168.56.100是k8s的ip
31003:是gateway的deploy下的deploy.yaml的端口号

查看nginx上游服务器是否修改成功

docker exec -it 5ab9431b91cd /bin/bash


/etc/nginx
cat nginx.conf

在这里插入图片描述

打包nginx镜像

打包nginx镜像,上传到docker hub

docker commit -a "lzl" -m "nginx-update-upstream" 5ab9431b91cd lzl123456/gulimall-nginx:v1.2

docker push lzl123456/gulimall-nginx:v1.2

3.整合阿里云镜像仓库

创建阿里云镜像仓库

容器镜像服务
自己阿里云登录,

设置密码
在这里插入图片描述
密码 lzl123456
在这里插入图片描述
创建镜像仓库
atguigumailllzl
在这里插入图片描述
在这里插入图片描述

操作阿里云镜像仓库

登录阿里云Docker Registry

 docker login --username=阳光下的你0 registry.cn-shanghai.aliyuncs.com

从Registry中拉取镜像

docker pull registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-nginx:[镜像版本号]

将镜像推送到Registry

 docker login --username=阳光下的你0 registry.cn-shanghai.aliyuncs.com
 docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-nginx:[镜像版本号]
 docker push registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-nginx:[镜像版本号]

在这里插入图片描述

docker tag e5767a4b33c6  registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-nginx:v1.0

docker images
在这里插入图片描述
登录镜像

 docker login --username=阳光下的你0 registry.cn-shanghai.aliyuncs.com
 
密码是注册镜像仓库的密码
我的是lzl123456

推送镜像到阿里云仓库

docker push  registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-nginx:v1.0

在这里插入图片描述
进入阿里云镜像仓库,看镜像

在这里插入图片描述
看到有v1.0的nginx镜像
在这里插入图片描述

不用创建镜像仓库,直接上传镜像

先大哥标签,再push。默认自己创建镜像仓库

docker tag e2b066e3fc02  registry.cn-shanghai.aliyuncs.com/atguigumailllzl/rabbitmq:v1.0

docker push registry.cn-shanghai.aliyuncs.com/atguigumailllzl/rabbitmq:v1.0

docker images
在这里插入图片描述

二、流水线用 阿里云镜像仓库

1.Jenkins修改阿里云镜像仓库

修改环境的REGISTRY

REGISTRY = 'registry.cn-shanghai.aliyuncs.com'

registry.cn-shanghai.aliyuncs.com:是阿里云镜像的前缀

修改环境的DOCKERHUB_NAMESPACE

DOCKERHUB_NAMESPACE的值改为 atguigumailllzl

DOCKERHUB_NAMESPACE = 'atguigumailllzl'

atguigumailllzl:是阿里云镜像仓库的名称空间

修改登录地址

仓库阿里云hub id

在这里插入图片描述

修改登录地址
DOCKER_CREDENTIAL_ID = 'aliyun-hub-id'

2.流水线创建

使用阿里云镜像进行流水线,部署项目

删除已经部署的服务

由于部署的服务会处理超时,所以全部删除
删除服务及工作负载

创建流水线

gulimall-jenkinsfile-aliyun-cicd

选择代码仓库
https://gitee.com/yummi/gulimail.git
在这里插入图片描述
对号,下一步

在这里插入图片描述
创建

部署gateway

在这里插入图片描述

部署失败

Pipeline aborted due to quality gate failure: ERROR
原因:sonarqube失效
解决:重新创建sonar-qube凭证
参考四,4,2,3,3.4 创建sonar-qube凭证,创建sonar-qube凭证

在这里插入图片描述

重新运行流水线,还是失败

删除jenkinsfile的构建的某个代码

          timeout(time: 1, unit: 'HOURS') {
            waitForQualityGate true
          }
重新运行流水线,部署gateway

构建的第四步,登录阿里云镜像仓库可能失败,我们就不登录,不推送latest镜像
发布最后一步,推送版本镜像,也不做。
直接手动推送latest镜像、与版本的镜像

部署所有的项目

3.流水线部署完成&bug修改

问题1、gulimall-seckill服务

Field rabbitTemplate in com.atguigu.gulimall.seckill.service.impl.SeckillServiceImpl required a bean of type ‘org.springframework.amqp.rabbit.core.RabbitTemplate’ that could not be found.

The injection point has the following annotations:

  • @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type ‘org.springframework.amqp.rabbit.core.RabbitTemplate’ in your configuration.

问题2、gulimall-order 和 gulimall-ware服务

no main manifest attribute, in /app.jar

问题3、renren_fast服务

一会好,一会不好
Caused by: java.sql.SQLSyntaxErrorException: Unknown database ‘renren_fast’

问题4、gulimall-gateway服务

trationDelegate B e a n P o s t P r o c e s s o r C h e c k e r : B e a n ′ o r g . s p r i n g f r a m e w o r k . c l o u d . a u t o c o n f i g u r e . C o n f i g u r a t i o n P r o p e r t i e s R e b i n d e r A u t o C o n f i g u r a t i o n ′ o f t y p e [ o r g . s p r i n g f r a m e w o r k . c l o u d . a u t o c o n f i g u r e . C o n f i g u r a t i o n P r o p e r t i e s R e b i n d e r A u t o C o n f i g u r a t i o n BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration BeanPostProcessorChecker:Beanorg.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfigurationoftype[org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB$c5bc282b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

4.修改阿里云镜像仓库为公开

点击某个阿里云镜像仓库的管理,如gulimall-ware,
进入镜像仓库内部,选择基本信息,修改信息
在这里插入图片描述

5.为每个部署的服务,添加多个副本

在这里插入图片描述
在这里插入图片描述
这样,多个副本就添加成功啦。
在这里插入图片描述

前提:阿里云镜像仓库有项目的镜像,镜像仓库是公开的

问题:seckill,order,ware,product项目部署失败

k8s登录阿里云镜像仓库失败

Error response from daemon: Get “https://registry.cn-shanghai.aliyuncs.com/v2/”: context deadline exceeded

法一:修改阿里云镜像固定密码,没用

阿里云镜像仓库,个人实例,访问凭证,固定密码,修改就可以
再登录。
具体没操作,不知道效果

法二:修改配置文件,推荐

配置insecure-registries
vi /etc/docker/daemon.json

"insecure-registries":["registry.cn-shanghai.aliyuncs.com"] 

vi /etc/resolv.conf

nameserver 8.8.8.8

重启,登录

systemctl daemon-reload
systemctl start docker.service
docker login -u 阳光下的你0 -p lzl123456 registry.cn-shanghai.aliyuncs.com

拉取推送镜像

docker push registry.cn-shanghai.aliyuncs.com/atguigumailllzl/gulimall-member:latest
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值