DevOps

Gogs

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.
原文地址:https://www.cnblogs.com/aftree/p/9221838.html