首先安装好Docker,以及Compose组件,如果已经安装,忽略此步骤
- 首先安装 Docker:
- 然后安装 Compose:
安装方式一、Gogs + Sqlite + Nginx
Gogs 支持 Sqlite,对于个人用户,Sqlite 足以应付,所以硬件资源有限的情况下不妨选择 Sqlite。
Gogs 默认端口是 3000,打算把 git.example.com
解析到 3000 端口。
新建一个文件命名为 docker-compose.yml
,然后复制粘贴下面的代码并保存。
version: '2'
services:
nginx:
container_name: [nginx]
image: nginx:alpine
volumes:
- "[~/nginx/]:/etc/nginx/conf.d/"
ports:
- "80:80"
restart: always
gogs:
container_name: [gogs]
image: gogs/gogs
volumes:
- [~/gogs]:/data
ports:
- "[3000]:3000"
- "[3022]:22"
restart: always
如你所见 “[]
” 里面的内容你自己决定,可以自由修改,注意实际编写时,要去掉[]符号,比如container_name: [gogs] , 实际编写时,注意写为 container_name: "gogs" , 其他的[xxxname] 也要注意。
保存上面代码为 docker-compose.yml
文件之后,使用命令:
$ docker-compose up -d
即可运行。
默认容器叫做 gogs
,数据保存在 ~/gogs
,端口是 3000
和 3022
。
- 3022:22
会将 3022 暴露给外网,用于 Git 的 SSH 协议, 不用 SSH 可以去掉。- [~/gogs]:/data
将映射本地的~/gogs
目录作为 volume 给容器使用, 根据自己创建的目录修改此项。
启动方式二、Gogs + Mysql + Nginx
如果你不希望使用 Sqlite,而是使用 Mysql,可以使用下面这份 docker-compose.yml
。
你不需要在本地安装 Nginx 和 Mysql,全文都通过 Docker 来完成。
version: '2'
services:
nginx:
container_name: [nginx]
image: nginx:alpine
volumes:
- "[~/nginx/]:/etc/nginx/conf.d/"
ports:
- "80:80"
restart: always
db:
container_name: [db]
image: mysql:5.7
volumes:
- "[~/mysql]:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: [PASSWORD]
MYSQL_DATABASE: [GOGS]
MYSQL_USER: [USER]
MYSQL_PASSWORD: [PASSWORD]
gogs:
container_name: [gogs]
depends_on:
- db
image: gogs/gogs
volumes:
- [~/gogs]:/data
links:
- db
ports:
- "[3000]:3000"
- "[3022]:3022"
restart: always
“[]
”里面的内容你自己决定,可以自由修改,(不改请去掉[]
符号,保持括号内的默认值)。
保存上面代码为 docker-compose.yml
,使用 docker-compose up -d
即可运行。
备注:
如果需要新建分支,然后通过Git命令推送到远程仓库中,使用分支注意管理代码,避免使用混乱。
参考转载链接:https://www.jianshu.com/p/424627516ef6 参考文档,原作者:左蓝