1

前言

使用docker+gogs方式搭建自己的私有代码服务器
Gogs官网文档地址


创建docker mysql

  1. 拉取mysql镜像 docker pull mysql
  2. 创建物理目录,用于存储mysql数据

    • mysql数据文件目录 mkdir /opt/docker/mysql/data
    • mysql配置文件目录 mkdie /opt/docker/mysql/conf
  3. 在配置文件目录下新增文件: docker.cnf, mysql.cnf, mysqldump.cnf

    • docker.cnf
    [mysqld]
     skip-host-cache
     skip-name-resolve
    • mysql.cnf
    [mysql]
     default-character-set = utf8
     
     [mysql_safe]
     default-character-set = utf8
     
     [client]
     default-character-set = utf8
     
     [mysqld]
     pid-file      = /var/run/mysqld/mysqld.pid
     socket        = /var/run/mysqld/mysqld.sock
     datadir       = /var/lib/mysql
     #log-error    = /var/log/mysql/error.log
     # By default we only accept connections from localhost
     #bind-address = 127.0.0.1
     # Disabling symbolic-links is recommended to prevent assorted security risks
     symbolic-links=0
     
     # 修改mysql默认字符集
     init_connect  = 'SET NAMES utf8'
     character-set-server = utf8
     collation-server = utf8_unicode_ci
    • mysqldump.cnf
    [mysqldump]
     quick
     quote-names
     max_allowed_packet  = 16M
    
  4. 启动mysql docker run -d --name gogs-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /opt/docker/mysql/data:/var/lib/mysql -v /opt/docker/mysql/conf:/etc/mysql/conf.d mysql:latest
    参数说明:

    • -d: 指定该容器以后台方式运行
    • --name: 指定容器名称为gogs-mysql
    • --net: 将容器加入backend网络
    • -p: 建立宿主机和容器的端口映射, 第一个3306表示宿主机的端口,第二个3306表示容器的端口, 访问宿主机的3306端口就等于于访问容器的3306端口
    • -v: 将宿主机的目录挂载到容器中.(将数据与容器分离)
    • mysql:latest: mysql镜像
  5. 镜像操作

    • 启动:docker start gogs-mysql
    • 删除:docker rm gogs-mysql
    • 进入镜像操作:docker exec -it gogs-mysql /bin/bash

创建 docker gogs

  1. 拉取镜像:docker pull gogs/gogs
  2. 创建物理目录:mkdir /opt/docker/gogs
  3. 启动:docker run -d --name=mygogs -p 10022:22 -p 10080:3000 -v /opt/docker/gogs:/data gogs/gogs
    参数说明:

    • -d: 指定该容器以后台方式运行
    • --name: 指定容器名称为mygogs
    • -p: 建立宿主机和容器的端口映射,将容器的22端口映射到宿主机的10022端口, 将容器的3000端口映射到宿主机的10080端口
    • -v: 将宿主机的目录挂载到容器中.(将数据与容器分离)
    • gogs/gogs: gogs镜像
  4. 镜像操作

    • 启动:docker start mygogs
    • 删除:docker rm mygogs
    • 进入镜像操作:docker exec -it mygogs /bin/bash

gogs配置

  • 浏览器访问物理机ip+端口,http://192.168.3.61:10080/
  • 设置数据库配置,修改个人的配置信息:主机用户密码数据库 等配置信息
  • 设置应用访问配置,域名使用物理机ip地址+端口:192.168.3.61:10080,ssh端口号:10022,应用url:192.168.3.61:10080
  • 设置管理员信息

数据库设置
应用设置
邮件配置
管理员账号


  • 保存配置,跳转登录则安装完成,遇见错误看页面提示修改,gogs日志文件/opt/docker/gogs/gogs/log

docker操作

  • docker运行状态 docker ps -a
  • docker日志,最后200条 docker logs --tail=200 gogs-mysql
  • 滚动监听日志 docker logs -f gogs-mysql

安装完成

浏览器访问 http://192.168.3.61:10080即可操作

域名访问gogs项目

设置nginx配置,保存信息,重启nginx服务

server { 
        listen 80;
        server_name 域名信息;
         
        #方向代理 gogs访问                             
        location / {
                proxy_pass http://127.0.0.1:10080/;
                proxy_redirect default;
        }
         
        #access_log /var/log/nginx/gogs/access.log main;
        #error_log /var/log/nginx/gogs/error.log;
         
}        
                                                       

修改gogs配置

[server]
DOMAIN           = sudo docker exec -it mysql /bin/bash
HTTP_PORT        = 3000
ROOT_URL         = 上一步更改的域名信息                                                                                                                                                               
DISABLE_SSH      = false
SSH_PORT         = 10022
START_SSH_SERVER = false
OFFLINE_MODE     = false

重启gogs,即可访问


hyc
42 声望0 粉丝