前言:
最近在学习docker swarm,然后发现如果使用集群的话,反向代理如果还需要手动配置服务发现就太麻烦了。所以又发现了traefik这个可以支持docker集群模式的主动服务发现工具。
traefik介绍:官网文档
- 一个反向代理的工具,可以理解成一个不需要手动改配置的nginx
Gitea介绍:Docker安装官方文档
- 一个轻量化的git代码仓库。小团队和个人使用完全足够了。 1h1g服务器也能跑的飞起
SSH容器直通:
-
让gitea容器和宿主机共用宿主机的ssh通道,从而达到一个22端口宿主机和gitea服务一起使用
-
如果不使用ssh容器直通,你的gitea还想使用ssh功能的话,就必须再加一个端口,比如2224,这样的话也不是不能用,只不过是在网页上面点击ssh的clone链接的时候会带上一个端口号。
使用ssh容器直通后复制的链接是这样的:
1 | |
不使用ssh容器直通后复制的链接是这样的:
1 | |
使用起来没有任何区别,唯一的区别就是链接长得不一样
服务器环境:
- 安装前需要先在服务器上面安装Docker和Docker-compose,本篇文章不做安装这两个的教程。请根据自己的服务器系统版本来安装,并改好docker的仓库源地址
- 开启HTTPS需要一个解析到你服务器的域名(国内还需要备案)
开始安装:
-
首先创建一个名为git的用户,并加入git用户组
1 | |
-
给git用户创建秘钥。直接回车回车回车就行了
1 | |
-
编写一个可执行文件(很重要,ssh容器直通就是执行这个文件)
1 | |
-
配置traefik,配置有很多种方式,我这里选择以
yml配置文件的方式进行配置, 并且动态和静态配置在一起。首先新建一个traefik.yml文件作为traefik的配置文件,名字是什么不重要。以.yml结尾就可以。配置文件放在./config/traefik.yml
1 | |
-
配置文件准备好后,使用
docker-compose up -d启动即可,配置如下,配置了自动将http转发至https中间件
1 | |