前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Docker的持续集成方案(安装和配置Gogs源码仓库) - Part.4

基于Docker的持续集成方案(安装和配置Gogs源码仓库) - Part.4

作者头像
张子阳
发布2018-09-30 09:54:52
1.1K0
发布2018-09-30 09:54:52
举报

基于Docker的持续集成方案(安装和配置Gogs源码仓库) - Part.4

2018-6-11 作者: 张子阳 分类: 分布式系统

不管技术还是生活,我现在都越来越喜欢简单、轻巧、专一、高效。因此我放弃了使用笨重、复杂的GitLab,而选择了这个轻量的源码管理工具。它的github地址是:github.com/gogs/gogs。目前是go语言类,stars排名第7的开源项目。这篇文章将介绍如何使用docker来搭建Gogs源码管理仓库。

下载镜像

首先是在hub.docker.com上搜索gogs,找到镜像地址:hub.docker.com/r/gogs/gogs/tags/。然后获取到本地,重新tag一下,方便后面使用。

这里我加了registry.docker-cn.com前缀,使用国内的docker镜像库,速度更快一些。

代码语言:txt
复制
docker pull registry.docker-cn.com/gogs/gogs:0.11.53; \
docker tag registry.docker-cn.com/gogs/gogs:0.11.53 gogs:0.11; \
docker rmi registry.docker-cn.com/gogs/gogs:0.11.53;

运行容器

代码语言:txt
复制
docker run -d --name=gogs -p 8031:3000 -p 8032:22 -v /docker/gogs:/data gogs:0.11;

配置gogs

上面映射了两个端口,其中8031是http端口号,8032是ssh端口号。假设安装的服务器IP是192.168.1.57,则用浏览器打开http://192.168.1.57:8031,自动跳转至配置页面,然后按下面这样配置。

使用域名也是类似的配置,将192.168.1.57修改成相应的域名即可。实际上,我是使用git.we-app.net这个域名进行配置的。

Gogs应用基本设置

这里注意不要修改上面的3000端口号。

如果配置错了想要重新安装,可以执行:docker stop gogs; docker rm gogs; rm -rf /docker/gogs;。实际上,我是重试了六七遍才达到我想要的全部效果 ...

验证安装

配置完成后,会自动跳转到登录页:http://192.168.1.57:8031/user/login。这个URL地址也就是上节配置的应用URL(非域名,域名的配置影响的是SSH)。

系统登录界面

注册登录成功后,可以创建一个helloworld仓库,可以看到如下界面:

仓库主界面

配置SSH登录

安装完成后,在客户端先安装git软件,然后打开git bash,尝试推送到仓库:

代码语言:txt
复制
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin ssh://git@git.we-app.net:8032/zhangzy/helloworld.git
git push -u origin master

在git push -u origin master这一步,会出现下面的提示,显然,我们还没有进行任何验证,所以没有权限推送到仓库。

下图中的关键提示:Permission denied(publickey, keyboard-ineractive).

推送时提示没有权限

此时,执行下面几个步骤:

1. 打开Git Bash,执行cat ~/.ssh/id_rsa.pub。查看本地的id_rsa.pub文件内容。

2. 如果没有文件则使用命令,创建密钥(将191811496@qq.com替换成你的gogs账号):

代码语言:txt
复制
ssh-keygen -t rsa -C "191811496@qq.com"

3. 再次执行cat ~/.ssh/id_rsa.pub,可以看到类似下面的输出:

代码语言:txt
复制
ssh-rsa A3AAB3NzaC1yc21AAAADAQABAAABAQCz34D4ax68jc/mMAp255LhHYhAtZqjM+y7bFsDG/Na3fnJEfl7QdlP1X8SGRLAs0xb+5CTID7cXfJ3wmxDbZkwuu3XFlWISfV+sf8myovqO8BE5QPa9tZ6RkHcTvyT9qutAZUJyuiv203E1i2RjacPla0wZArs5Xm2qeRtgccR8qwWYbFrYX0nXaGdQ/mwgt1JLJbHi5vQHQeREfXm/7j8rjj6BaE07L8/0IFu0jF7RV+2+Tpy1z+CQAgDuPEoX55InFwDyOJujClvqYuWEbcmTRXx16qSyuDi7W+XTy6+Ivu917knQ3HOvP1qqM0N3HdrzQtBW0S5wDGfb6/mh0Q/ 191811496@qq.com

4. 进入gogos,点击右上角用户头像 --> 用户设置 --> SSH密钥,然后粘贴进去,点击“增加密钥”。

配置SSH密钥

至此,SSH登录就配置完成了。重新在客户端运行git bash,执行git push -u origin master,正常的话将会成功推送代码到gogs源码仓库。

感谢阅读,希望这篇文章能给你带来帮助!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-6-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于Docker的持续集成方案(安装和配置Gogs源码仓库) - Part.4
    • 下载镜像
      • 运行容器
        • 配置gogs
          • 验证安装
            • 配置SSH登录
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档