docker安装gogs
【转载】原文地址:https://www.jianshu.com/p/2a7acb07b352
请先参考docker安装mysql, 进行mysql的安装: http://www.jianshu.com/p/5f5e419b5de8
(以上安装完MySQL后,仍需设置防火墙,具体操作见文后补充。)
一. 在宿主机创建目录
无需指定特殊权限
mkdir /opt/docker/gogs/
二. 运行容器
在此之前,先在mysql中创建gogs数据库. [注意,一定要先将mysql数据库的默认字符编码设置为utf8, 否则, gogs在自动创建表时, 会出现问题]
docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs
参数说明:
-d: 后台方式运行容器
-p: 端口映射, 将容器的22端口映射到宿主机的10022端口, 将容器的3000端口映射到宿主机的10080端口
--name: 指定容器名称
--net: 将容器加入backend网络, 目的是为了能够连接backend网络中的mysql数据库
-v: 数据卷挂载, 用于将容器和数据分离
三. 打开浏览器,进行gogs配置
http://宿主机ip:10080
如: http://localhost:10080
01.png
02.png
注意两个配置:
数据库主机
值应该是:mysql57:3306
这个是docker中连接另一个容器中服务的方式(上一篇文章在启动mysql容器时,将mysql加入backend网络的目的就在于此).应用URL
, 这个url应该是宿主机地址:10080
点击确认, 之后会转到一个无法连接的页面, 是因为 刚才的应用URL
指定的端口是3000, 但访问宿主机的3000并无意义, 必须访问10080才行, 为什么是10080, 因为容器启动时, 建立了-p 10080:3000
的映射.
下一步我们将通过修改配置文件的方式修正这个问题
四.修改配置文件
配置文件路径: /opt/docker/gogs/gogs/conf/app.ini
APP_NAME = Gogs
RUN_USER = git
RUN_MODE = prod[database]
DB_TYPE = mysql
HOST = mysql57:3306 ## 注意这里, 是docker中连接通网络,其它容器服务的方式
NAME = gogs
USER = root
PASSWD = root
SSL_MODE = disable
PATH = data/gogs.db[repository]
ROOT = /data/git/gogs-repositories[server]
DOMAIN = localhost
HTTP_PORT = 3000
ROOT_URL = http://localhost:10080/ ## 这个就是图形界面的应用URL的值
DISABLE_SSH = false
SSH_PORT = 10022
START_SSH_SERVER = false
OFFLINE_MODE = false[mailer]
ENABLED = false[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true[session]
PROVIDER = file[log]
MODE = file
LEVEL = Info
ROOT_PATH = /app/gogs/log[security]
INSTALL_LOCK = true
SECRET_KEY = nV8DDKEN2IExVjr
修改完之后, 保存, 重启gogs容器,再访问
http://localhost:10080
即可看到登录, 界面了, 点击注册, 注册成功后的第一个用户, 会成为超管用户.
五. 测试
- 使用gogs的图形界面,创建一个项目. 然后在本地, pull下来, 修改之后再push上去. 然后看界面中是否有你提交的结果
- 使用如下命令, 停止并删除容器
docker stop gogs
docker rm gogs
- 再次启动容器
docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs
- 访问 http://localhost:10080, 登录查看之前创建是否依然存在, 如果存在, 则你已成功完成gogs部署了
对原文的补充:
- 用docker安装完mysql后,需要在宿主机设置防火墙开放MySQL端口(一般是3306),否则gogs访问MySQL会报无法连接。
步骤:1.查看区域信息 firewall-cmd --get-active-zones 2.开放指定的端口,此处开发你需要连接的ethstats端口即可(临时开放) sudo firewall-cmd --zone=public --add-port=3306/tcp 3.开放指定的端口,此处开发你需要连接的ethstats端口即可(永久开放) sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent 4.保存服务 sudo firewall-cmd --reload
- mysql版本选择5.7即可,8.0有几率不成功;
- mysql编码选择utf8,排序选择utf8_genegal_ci(gogs官方要求),其他编码和排序不一定能成功(后来我自己试过utf8mb4编码和utf8mb4_genegal_ci排序也没问题);
- 如果出现【仓库根目录设置不正确的问题】这个问题,在宿主机上执行 sudo chmod -R 777 /opt/docker/gogs,给docker容器以权限写入内容。(这一步要在出现问题后才执行,否则新生成的文件夹默认是不能写入的)
docker安装gogs相关推荐
- gogs mysql 报错_linux上Docker安装gogs私服亲测(详解)
一.前言 有网友问我为什么要使用私服,可能大部分人都不是太懂,网上那么多存储仓库而且好用方便,但是你想过没有如果企业中的项目,放在人家的仓库上这个安全性不是太好,所以说一般企业都会有自己的私服.本章教 ...
- Docker安装Gogs搭建git服务器
gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...
- Docker安装gogs git仓库
在地址栏输入http://ip:3000 会进入首次运行安装程序页面,我们 可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3.如果对于规模较大 的公司,可以选择MySQL
- docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor
2019独角兽企业重金招聘Python工程师标准>>> 1.准备三台虚拟机ip如下 编号 Ip 1 192.168.100.101 2 192.168.100.102 3 192.1 ...
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
没有采用gitlab,因为gitlab比较吃配置.也比较重,用不到那么多功能.采用go语言开发的gogs来代替. 免费HTTPS证书 安装Gogs (一个gitserver,类似于gitlab) 安装 ...
- docker安装ansible awx
awx简介 Ansible AWX是商业版Ansible Tower 的开源版本,AWX提供了一个基于web的用户界面.REST API和构建在Ansible之上的任务引擎. 借助Ansible AW ...
- CentOS 7中Docker安装详细步骤 ( 资源 )
2019独角兽企业重金招聘Python工程师标准>>> 注意:centos 6.9上默认是安装docker早期的1.7.*版本,后续docker 分CE和EE的版本,只能安装在cen ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
- etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
1. 使用 apt 或 yum 安装 etcd 命令如下: sudo apt-get install etcd 或者 sudo yum install etcd 这样安装的缺点是:安装的 etcd 版 ...
最新文章
- python 连接mysql数据库
- 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
- 【数字逻辑设计】推气泡
- 前端基础-html-段落标签
- html文件很大,webpack打包之后的文件过大如何解决
- [转][ASP.net]后台页面刷新
- Struts2 Error filterStart异常的解决方法总结
- [WTL] 使用CImageList
- 第十六章 python Pygame的使用
- OfficeXP的激活码保存位置
- 电大本科计算机应用基础模块6,国家开放大学计算机应用基础模块3形考答案.xls...
- 2018深信服java笔试题,深信服2018秋招编程题
- SSL-ZYC 游戏
- Win10亮度调节无效
- 如何选择企业级数据存储DAS、NAS和SAN
- SVN提交,报“remains in conflict”错误
- 多邻国-英语学习笔记
- Windows无法安装驱动原因总结
- untu复制粘贴快捷键
- 进制GB和GiB的区别