当前位置: 首页 > news >正文

Linux 使用 docker 安装 Gogs 公司私有 Git 仓库

Gogs 简介

Gogs(Go Git Service)是一个用 Go 语言编写的自托管 Git 服务,类似于 GitHub 或 GitLab,但更轻量、易于部署和使用。Gogs 的目标是提供一个简单、快速且低资源占用的 Git 服务,适合个人开发者、小团队或企业使用。

下载官网:Gogs: A painless self-hosted Git service

 安装部署:

首先安装docker,这里不再详细解释了。

#安装好docker之后,拉取gogs镜像。
docker pull gogs/gogs
#创建本地目录存放数据
mkdir -p /var/gogs
#使用run命令绑定端口和一些配置文件
docker run -d --name=my_gogs -p 1022:22 -p 3000:3000 -v /var/gogs:/data gogs/gogs
#注释:
#docker run  创建并启动一个新的容器。
#-d          表示以“后台模式”运行容器。
#--name      用于为容器指定一个名称,这里是 my_gogs
#-p 1022:22  表示将宿主机的 1022 端口映射到容器的 22 端口。
#-p 3000:3000 将宿主机的 3000 端口映射到容器的 3000 端口。
#-/var/gogs:/data 表示将宿主机的 /var/gogs 目录挂载到容器的 /data 目录。
#gogs/gogs   是Gogs的官方Docker镜像,托管在Docker Hub上。

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 临时
setenforce 0  
# 永久 注意需要重启才能生效。
sed -i 's/enforcing/disabled/' /etc/selinux/config 

#拉取mysql镜像
docker pull mysql:8.0
#启动mysql容器
docker run -d --name=mysql8 \
>   -e MYSQL_ROOT_PASSWORD=password \
>   -p 5432:3306 \
>   -v /path/to/mysql/data:/var/lib/mysql \
>   mysql:8.0

#-d:后台运行容器。
#--name=mysql8:为容器指定名称。
#-e MYSQL_ROOT_PASSWORD=password:设置MySQL的root用户密码。
#-p 5432:3306:将宿主机的3306端口映射到容器的3306端口(MySQL默认端口)。
#-v /path/to/mysql/data:/var/lib/mysql:将宿主机的目录挂载到容器的 /var/lib/mysql 目录,用于持久化数据。
#mysql:8.0:使用的镜像名称和版本。
#进入容器
docker exec -it  mysql8 bash 
#进入数据库里面
mysql -u root -p
#输入密码
#创建数据库
CREATE DATABASE gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#utf8mb4 是Gogs推荐的字符集,支持存储Emoji等特殊字符。
#utf8mb4_general_ci 是默认的排序规则。
#创建用户并设置密码
#创建用户 gogs,并设置密码为password :
CREATE USER 'gogs'@'%' IDENTIFIED BY 'password ';
#授予用户 gogs 对数据库 gogs 的所有权限
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%';
#刷新权限
FLUSH PRIVILEGES;
#检查用户 gogs 的权限:
SHOW GRANTS FOR 'gogs'@'%';
#退出MySQL命令行:
exit;

打开浏览器访问 http://服务器IP:3000

 

报错500,原因没有启用邮箱配置。

解决方法:

#查找app.ini文件
find / -name app.ini
#编辑app.ini文件
vim /var/gogs/gogs/conf/app.ini

#启用邮箱配置
把改为ENABLED = true  

#gogs重启
docker restart my_gogs
docker restart mysql8

重启gogs之后重新注册。

登录成功

创建仓库:

后面的内容和gitee github 仓库差不多,不再详细描述了。

相关文章:

  • vue打包编译【自动删除node_modules下的.cache缓存文件夹】
  • Linux 系统负载过高的排查思路
  • 【10】单片机编程核心技巧:指令周期与晶振频率
  • SSTI注入笔记
  • QT系列教程(20) Qt 项目视图便捷类
  • Spring Boot基础使用详解
  • Oracle 数据库基础入门(七):触发器与事务的深度探究
  • JVM 类加载原理之双亲委派机制(JDK8版本)
  • spring boot3.4.3+MybatisPlus3.5.5+swagger-ui2.7.0
  • Qt 加载插件:实现可扩展应用的秘诀
  • halcon机器人视觉(二)固定相机抓取hand_eye_stationarycam_grasp_nut
  • 【Mastering Vim 2_12】(完结篇)第九章:以终为始 —— Vim 推荐编辑习惯与相关学习资源整理
  • mapbox高阶,结合threejs(threebox)添加管道
  • vscode(cursor)配置python环境,含远程调试
  • MATLAB并行计算加速,用 parfor 和 spmd 榨干多核CPU性能
  • Jeinkins配置sonarqube
  • 网络安全之数据加密(DES、AES、RSA、MD5)
  • PPO算法 - AI学习记录
  • bug-Ant中a-select的placeholder不生效(绑定默认值为undefined)
  • 代理IP与反爬技术的博弈
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”
  • “80后”南京大学天文与空间科学学院教授施勇加盟西湖大学
  • 私家车跑“顺风”出事故,意外险赔不赔?
  • 北方首场高温将进入鼎盛阶段,江南华南多地需警惕降雨叠加致灾
  • 著名文博专家吴远明因交通事故离世,享年75岁
  • 上百家单位展示AI+教育的实践与成果,上海教育博览会开幕