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.