0
点赞
收藏
分享

微信扫一扫

『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

通过vagrant 安装

vagrant reload

下载Harbor

  • 选择目前最新版本1.5.2
    https://github.com/vmware/harbor/releases
    我选择的是online版本,两种版本基本上差不多。
sudo yum -y install lrzsz
#在windows下载的1.5.2 online 上传上去
rz

  • 解压harbor
tar xvf harbor-online-installer-v1.5.2.tgz
  • 安装
cd harbor
sudo ./install.sh

  • 需要换成另外一种安装方法。
sudo ./prepare

  • 真正的安装
sudo docker-compose up -d

安装成功

sudo docker-compose stop

sudo docker-compose start

测试harbor

  • 启动服务
sudo serivce docker restart
cd harbor
sudo docker-compose start

  • 修改参数
sudo vi /etc/docker/daemon.json
#写入{"insecure-registries":["172.28.128.6"]}

 sudo systemctl restart docker  

#因为没配置http的过滤, 某人是使用https,就拒绝了。
connect: connection refused
#配置了上边的insecure-registries
server gave HTTP response to HTTPS client

push 镜像试试

  • 新建用户

  • 新建项目

#这个错误,就是未建立项目。
f9d9e4e6e2f0: Preparing 
denied: requested access to the resource is denied
  • push项目
sudo docker pull busybox
sudo docker tag busybox 172.28.128.6/idig8/busybox
sudo docker login 172.28.128.6 -u idig8 -p 123456789
sudo docker push 172.28.128.6/idig8/busybox

远程连接harbor

  • 查找Docker的服务文件:登录到已经安装Docker的服务器,输入 systemctl status docker 查看Docker的service文件。
sudo systemctl status docker

  • 编辑docker.service文件:在ExecStart处添加 –insecure-registry 参数。
sudo vi /usr/lib/systemd/system/docker.service

  • 重新加载service文件,重启docker服务。
sudo systemctl daemon-reload
sudo systemctl restart docker

  • 尝试远程登录
sudo docker login http://172.28.128.6 -u admin -p Harbor12345

gitlab gitlab-ci harbor

  • 修改 .gitlab-ci.yml
stages:
  - style
  - test
  - deploy
  - release
  
pep8:
  stage: style
  script:
    - pip install tox
    - tox -e pep8
  tags:
    - python2.7
    
unittest-py27:
   stage: test
   script:
     - pip install tox
     - tox -e py27
   tags:
     - python2.7

unittest-py34:
   stage: test
   script:
     - pip install tox
     - tox -e py34
   tags:
     - python3/4
     
docker-deploy:
   stage: deploy
   script:
     - docker build -t flask-demo .
     - if [ $( docker ps -aq --filter name=web) ]; then docker rm -f web;fi
     - docker run -d -p 5000:5000 --name web flask-demo
   tags:
     - test1
   only:
     - master
docker-image-release:
   stage: release
   script:
     - docker login 172.28.128.6 -u idig8 -p 123456789
     - docker build -t 172.28.128.6/idig8/flask-demo:$CI_COMMIT_TAG .
     - docker login 172.28.128.6 -u idig8 -p 1qaz@WSX3edc
     - docker push 172.28.128.6/idig8/flask-demo:$CI_COMMIT_TAG
   tags:
     - test1
   only:
     - tags

.

  • 如果我们想已经到master分支了,就光执行tag打包生成镜像怎么搞呢
stages:
  - style
  - test
  - deploy
  - release
  
pep8:
  stage: style
  script:
    - pip install tox
    - tox -e pep8
  tags:
    - python2.7
  except:
    - tags
    
unittest-py27:
   stage: test
   script:
     - pip install tox
     - tox -e py27
   tags:
     - python2.7
   except:
     - tags

unittest-py34:
   stage: test
   script:
     - pip install tox
     - tox -e py34
   tags:
     - python3/4
   except:
     - tags
     
docker-deploy:
   stage: deploy
   script:
     - docker build -t flask-demo .
     - if [ $( docker ps -aq --filter name=web) ]; then docker rm -f web;fi
     - docker run -d -p 5000:5000 --name web flask-demo
   tags:
     - test1
   only:
     - master
    
docker-image-release:
   stage: release
   script:
     - docker login 172.28.128.6 -u idig8 -p 123456789
     - docker build -t 172.28.128.6/idig8/flask-demo:$CI_COMMIT_TAG .
     - docker login 172.28.128.6 -u idig8 -p 1qaz@WSX3edc
     - docker push 172.28.128.6/idig8/flask-demo:$CI_COMMIT_TAG
   tags:
     - test1
   only:
     - tags
  • 新建tag

  • 进入harbor看看

PS:实际上这个例子,就是特定版本的docker image的产生。一个版本的发布代表我们这个软件的稳定的版本的问世,接下来就可以进行对稳定版本的部署,我们对稳定版本的部署,稳定版本的部署具体是docker swarm还是k8s,最重要的是我们已经有了一个docker image,我们可以通过手动,或者自动的升级。update docker image 实现服务的不中断。
总体言之这几次的流程是:开发代码提交到分支后,分支下进行校验pipline,没有问题,进行deploy的,在deploy测试没有问题,打包tag,形成稳定的dockerimage版本。


往期精彩
  1. docker导学(一)
  2. 容器的技术概述(二)
  3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
  4. docker官网介绍(四)
  5. 如何在mac上安装docker(五)
  6. 如何在window上安装docker(六)
  7. 如何在mac上通过vagrant安装虚拟机(七)
  8. 如何在window上通过vagrant安装虚拟机(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
  12. docker架构和底层技术(12)
  13. docker Image概述(13)
  14. 手动建立一个base Image(14)
  15. 什么是Container(15)
  16. 构建自己的Docker镜像(16)
  17. Dockerfile详解(17)
  18. 镜像的发布(18)
  19. Dockerfile实战(19)
  20. 容器的操作(20)
  21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
  22. 容器的资源限制(22)
  23. docker网络(23)
  24. docker学习必会网络基础(24)
  25. Linux网络命名空间(25)
  26. Docker Bridge详解(26)
  27. 容器之间的Link(27)
  28. 容器的端口映射(28)
  29. 容器网络之host和none(29)
  30. 多容器复杂应用的部署(30)
  31. overlay网络和etcd实现多机的容器通信(31)
  32. docker的数据持久化存储和数据共享(32)
  33. windows下vagrant 通过SecureCRT连接centos7(33)
  34. 数据持久化之Data Volume(34)
  35. 数据持久化之bind Mounting(35)
  36. docker 使用bind Mounting实战(36)
  37. docker容器安装wordpress(37)
  38. docker Compose到底是什么(38)
  39. Docker Compose的安装和基本使用(39)
  40. Docker 水平扩展和负载均衡(40)
  41. Docker compose 部署一个复杂的应用(41)
  42. 容器编排Docker Swarm介绍(42)
  43. docker-swarm创建一个多节点集群(43)
  44. play with docker 的使用(44)
  45. docker-swarm中的Service创建维护和水平扩展(45)
  46. 在docker-swarm集群里通过serivce部署wordpress(46)
  47. 集群服务间通信之RoutingMesh(47)
  48. RoutingMesh之Ingress负载均衡(48)
  49. Docker-Stack部署wordpress(49)
  50. Docker-Stack部署投票应用(50)
  51. Docker-Secret管理和使用(51)
  52. Docker service更新(52)
  53. Docker的收费模式(53)
  54. Docker-cloud介绍(54)
  55. Docker Cloud自动构建 Docker image(55)
  56. Docker企业版的在线免费体验(56)
  57. docker企业版本地安装之UCP(57)
  58. docker体验阿里云的容器服务(58)
  59. 阿里云安装Docker企业版UCP和DTR(59)
  60. Kubenetes简介(60)
  61. Minikube快速搭建K8S单节点环境(61)
  62. K8S最小调度单位Pod(62)
  63. K8S横向扩展功能ReplicaSet和ReplicationController(63)
  64. k8s重要的Deployment(64)
  65. Vagrant在本地搭建多节点K8S集群(65)
  66. k8s基础网络Cluster Network(66)
  67. k8s的Service简介和演示(67)
  68. k8s的NodePort类型Service以及Label的简单实用(68)
  69. CI/CD持续集成/持续部署(69)
  70. docker之CI/CD持续集成-gitlab安装(70)
  71. docker之CI/CD持续集成—GitLab CI服务器(71)
  72. docker之CI/CD持续集成—真实Python项目的CI演示(72)
  73. docker之CI/CD持续集成—真实JAVA-Maven项目的CI演示(73)
  74. docker之CI/CD持续集成-CD演示(74)
  75. docker之CI/CD持续集成-整个流程串联(75)

举报

相关推荐

0 条评论