请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

denied: requested access to the resource is denied

图片描述
docker build -t flask-skeleton .
docker push 192.168.2.85:8888/flask-demo/flask-skeleton
gitlab-ci,执行docker push就报错了
在服务器手动推送是没有问题的图片描述
1、请问,A服务器是gitlab,B服务器是gitlab-ci,C服务器是生产环境的服务器,当gitlab-ci做完build带tag镜像后推送到docker镜像仓库,生产服务器从镜像仓库把带有版本号的稳定镜像下载下来在更新发布就可以吗
2、gitlab-ci需要在每台服务器都安装配置吗,包括测试环境,预发布环境,生产环境呢
3、在打上了TAG,这个TAG如果不用gitlab-ci的话,在发布的时候,如何获取到镜像后面的版本号呢
谢谢老师

正在回答

插入代码

1回答

  1. 可以这样做

  2.  不需要每台都安装gitlab ci,控制一台服务器的方式有很多,也可以通过ansible之类的软件

  3. 没太明白您的意思,什么叫gitlab不用这个tag


其实CICD的使用是有很大的灵活性的,而现实中把开发,测试,生产连接到一起的技术也有很多。gitlab ci只是一个工具,但不是万能的。

0 回复 有任何疑惑可以回复我~
  • 提问者 shalama #1
    您好,
    第三个问题,我把gitlab和gitlab-ci装在同一台服务器上面,在项目中打上了TAG标签后,可以在gitlab-ci.yml中通过TAG变量获取到新的项目TAG标签,然后上传到镜像仓库。当要上线新的项目时,线上服务器如何能获取到这个项目的TAG,因为线上服务器没有gitlab-ci,不能通过TAG变量来获取,就不知道TAG的值,就不能拉取该镜像对应的TAG标签。
    回复 有任何疑惑可以回复我~ 2019-04-05 12:31:23
  • 麦兜搞IT 回复 提问者 shalama #2
    您是说线上服务器要部署最新tag的版本么?这个可以考虑其他的办法吧,机器没有这么智能,不可能自己就知道什么时候几点几分发布了一个新版本x.y的,肯定的借助其他方式通知服务器
    回复 有任何疑惑可以回复我~ 2019-04-06 02:13:17
  • 麦兜搞IT 回复 提问者 shalama #3
    gitlab和gitlab-ci不是万能的,自动化部署,CI CD也是一个很复杂的话题,咱们在课程里只是demo了一种简单的场景。复杂场景要具体情况具体分析,有些情况,甚至要自己开发一些额外的工具
    回复 有任何疑惑可以回复我~ 2019-04-06 02:14:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信