Gogs

Gogs官网:https://gogs.io

Gogs文档:https://gogs.io/docs

Gogs配置文件手册:https://gogs.io/docs/advanced/configuration_cheat_sheet

Gogs - Go Git Service

二进制安装超简单:https://www.cnblogs.com/phpisbest/p/7000255.html

Docker安装MySQL

Gogs使用MySQL需要UTF8和innodDB存储引擎

基于mysql镜像,制作符合要求的mysql镜像

由于拉取的mysql镜像,其编码默认是latin,而gogs要求是utf8,还需要修改存储引擎因此,需要修改编码,制作新镜像,步骤如下:
1. 得到mysql的配置文件
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:zxg ## 运行出一个MySQL容器 docker cp MySQL容器ID:/etc/mysql/mysql.conf.d/mysqld.cnf . ## 拷贝mysql的配置文件到当前目录 2. 修改MySQL配置文件
在上一步得到的mysqld.cnf文件中,增加character-set-server = utf8, 大致如下
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
character-set-server = utf8
init_connect = 'SET NAMES utf8'
3. 编写Dockerfile持久化MySQL配置文件
FROM mysql:zxg
ADD mysqld.cnf /etc/mysql/mysql.conf.d/
4.根据dockerfile编译新镜像
docker build -t mysqlutf8:zxg --no-cache=true -f Dockerfile .
5.存储到镜像库

使用官方镜像修改配置文件

MySQL官方的Docker镜像地址:https://hub.docker.com/r/library/mysql/

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

官方MySQL镜像没有yum,vi等工具,要想更改MySQL配置文件,可以挂载MySQL配置文件目录到宿主机,或者docker cp

$ docker cp --help

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH Copy files/folders between a container and the local filesystem Options:
-a, --archive Archive mode (copy all uid/gid information)
-L, --follow-link Always follow symbol link in SRC_PATH
#进入容器
docker exec -it mysql bash #登录mysql
mysql -u root -p #添加Gogs远程登录用户,并创建Gogs数据库
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%'; docker exec -it mysqlutf8容器ID bash
[root@zxg opt]$ docker exec -it 1ec bash
root@1ec26f5dc361:/# mysql -h 127.0.0.1 -uroot -proot
mysql> create database gogs default character set utf8 collate utf8_general_ci;
# 可以将配置文件目录,和数据目录挂载到宿主机
docker run -p 3306:3306 --name mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6 -p 3306:3306:将容器的3306端口映射到主机的3306端口 -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
【数据库】Mysql更改默认引擎为Innodb的步骤方法
前言 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。 基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 我为什么要改默认引擎,其实原因很简单,我使用的Mysql默认引擎是MyISAM,而MyISAM并不支持事务处理,所以我需要更换它的引擎。 更改 Mysql 默认引擎为 InnoDB步骤如下: Mysql默认是关闭InnoDB存储引擎的使用的,将InnoDB设置为默认的引擎如下。 1. 查看Mysql存储引擎情况: mysql>show engines InnoDB | YES,说明此Mysql数据库服务器支持InnoDB引擎。 2. 设置InnoDB为默认引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB 3. 重启Mysql服务器 4. 登录Mysql数据库,mysql>show engines 如果出现 InnoDB |DEFAULT,则表示设置InnoDB为默认引擎成功。 总结 以上就是更改Mysql默认引擎为Innodb的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
show variables like'character%';  # 查看MySQL的字符集

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+ 修改字MySQL字符集 vim /etc/my.cnf [client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

Docker 安装 Gogs

https://github.com/gogits/gogs/tree/master/docker

# Pull image from Docker Hub.
$ docker pull gogs/gogs # Create local directory for volume.
$ mkdir -p /var/gogs # Use `docker run` for the first time.
$ docker run -d --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs # Use `docker start` if you have stopped it.
$ docker start gogs

可以不用创建管理员用户,默认第一个用户就是管理员。 
但是admin这个用户是不能使用的。

创建了一个gogs用户,这个就是管理员。 
数据在宿主上面的/var/gogs/目录下面,如果需要重新安装,则清空这个目录,然后重启下gogs的docker镜像即可。

输入docker主机的ip和端口(默认端口10080):http://192.168.1.8:10080/

具体配置看:https://www.jianshu.com/p/2a7acb07b352

测试Git服务

# git clone http://192.168.1.8:10080/gogs/gogs.git
# touch README.md
# git add README.md
# git commit -m "first commit"
# git push -u origin master 如果没有配置ssh,则需要输入用户名密码:
Username for 'http://192.168.1.8:10080': gogs
Password for 'http://gogs@192.168.1.8:10080':
Counting objects: 3, done.
Writing objects: 100% (3/3), 206 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.1.8:10080/gogs/gogs.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

DevOps - 版本控制 - Gogs的更多相关文章

  1. DevOps - 版本控制 - Bitbucket

    Bitbucket 使用139邮箱无法收到注册邮件 https://bitbucket.org

  2. DevOps - 版本控制 - Git

    配置 .gitignore 配置 .gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利. 有些时候,你必须把某些文件放到Git工作目录中,但又 ...

  3. DevOps - 版本控制 - GitHub

    README Badges 徽章 Shields.io: Quality metadata badges for open source projects  徽章 官网:https://shields ...

  4. 基于Github Actions + Docker + Git 的devops方案实践教程

    目录 为什么需要Devops 如何实践Devops 版本控制工具(Git) 学习使用 配置环境 源代码仓库 一台配置好环境的云服务器 SSH远程登录 在服务器上安装docker docker技术准备工 ...

  5. 2019 DevOps 必备面试题——代码版本控制篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  6. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  7. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  8. DevOps is dirty work - CI drives you crazy

    一直很想谈谈Continuous Integration(CI),持续集成. 就在不久前一次朋友聚会上,一个刚刚跳槽到一家创业公司的朋友跟我抱怨说他们没有CI,没有code review,要做点事太累 ...

  9. DevOps的修炼之路!

    作为一名产品经理,首先要知道产品对于所属公司来说意味着什么,要探寻这个问题,我们又得知道和公司息息相关的是什么,在我的理解来看,与公司状况相关的因素有以下这些: 市场份额 平均订单金额 盈利能力 资产 ...

随机推荐

  1. JS——json、ajax、jsonp

    json: data.json: { "code":1, "data": { "name": "kid", " ...

  2. LL_01

    http://www.52pojie.cn/thread-262602-1-1.html C http://www.92jh.cn/forum.php?mod=viewthread&tid=1 ...

  3. (转)Linux硬链接、软链接及inode详解

    inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读 ...

  4. ${openid_wx} el解析式放入url的“”里才起作用。

    window.location.href="${ctx }/wx/reservation/content?shopid="+shopid+"&&openi ...

  5. 1.- Netty设计理念-异步和事件驱动

    0. 关键点 a). 非阻塞网络调用,异步方法立即返回 b). 选择器(Selector)使得单一线程就可监控很多连接上的事件. <dependency> <groupId>i ...

  6. [WPF自定义控件库]简单的表单布局控件

    1. WPF布局一个表单 <Grid Width="400" HorizontalAlignment="Center" VerticalAlignment ...

  7. elasticsearch远程代码执行漏洞告警

    es版本:1.7.2 最近在做es项目的时候出现,启动es一段时间系统就会报警,结果查询了一下,原来是es的漏洞: 官网描述: 大致意思就是: 漏洞出现在脚本查询模块,默认搜索引擎支持使用脚本代码(M ...

  8. 一般处理程序ashx

    在用户列表中链接数据库 在这里Html只管做Post 请求,其他逻辑全部交给ashx 其中修改需要隐藏域 1.展现列表 public void ProcessRequest (HttpContext ...

  9. iOS 收藏的笔记

    目录 UI 资料类 网络篇 图表 动画 菜单栏 数据存储和数据库 第三方库 社交分享 刷新 视频音频 其他 阅读 JS 导航 系统 支付 书籍 工具类 完整项目收集 DEMO UI http://ww ...

  10. SpringMVC 返回自定义属性名

    SpringMVC 返回的属性名默认是小写驼峰形式的实体对象中的属性名,如 userID 属性名它会返回 userId. 如果接口方式之前已经定下来,这样前端按原来的方式取数据会读取失败的,那有没有方 ...