zoukankan      html  css  js  c++  java
  • 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.
    
  • 相关阅读:
    python之各种包
    正则表达式
    import/模块的导入
    迭代器/可迭代对象/生成器
    Day2 列表list
    Day1 字符串格式化
    Day1 字符编码及编码函数
    Python 学习笔记 之 随着学习不断更新的Python特性搜集
    Day1 input&print
    Newtonsoft.Json日期转换
  • 原文地址:https://www.cnblogs.com/aftree/p/9221838.html
Copyright © 2011-2022 走看看