前言
使用docker+gogs方式搭建自己的私有代码服务器
Gogs官网文档地址
创建docker mysql
- 拉取mysql镜像
docker pull mysql
-
创建物理目录,用于存储mysql数据
- mysql数据文件目录
mkdir /opt/docker/mysql/data
- mysql配置文件目录
mkdie /opt/docker/mysql/conf
- mysql数据文件目录
-
在配置文件目录下新增文件:
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
-
启动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镜像
-
镜像操作
- 启动:
docker start gogs-mysql
- 删除:
docker rm gogs-mysql
- 进入镜像操作:
docker exec -it gogs-mysql /bin/bash
- 启动:
创建 docker gogs
- 拉取镜像:
docker pull gogs/gogs
- 创建物理目录:
mkdir /opt/docker/gogs
-
启动:
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镜像
-
镜像操作
- 启动:
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,即可访问
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。