mirror of
https://github.com/yusing/godoxy.git
synced 2025-07-22 12:24:02 +02:00
databases without explicit alias(es) are now excluded by default
This commit is contained in:
parent
e8f4cd18a4
commit
9c3edff92b
4 changed files with 35 additions and 3 deletions
|
@ -4,7 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
"github.com/yusing/go-proxy/internal/common"
|
"github.com/yusing/go-proxy/internal/common"
|
||||||
H "github.com/yusing/go-proxy/internal/homepage"
|
H "github.com/yusing/go-proxy/internal/homepage"
|
||||||
PR "github.com/yusing/go-proxy/internal/proxy/provider"
|
PR "github.com/yusing/go-proxy/internal/proxy/provider"
|
||||||
|
@ -55,8 +54,6 @@ func (cfg *Config) HomepageConfig() H.HomePageConfig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Debugf("%s isexplicit: %v, explicitonly: %v", r, r.Entry().IsExplicit, p.IsExplicitOnly())
|
|
||||||
|
|
||||||
item := entry.Homepage
|
item := entry.Homepage
|
||||||
|
|
||||||
if !item.Show && !item.IsEmpty() {
|
if !item.Show && !item.IsEmpty() {
|
||||||
|
|
|
@ -28,6 +28,7 @@ func FromDocker(c *types.Container, dockerHost string) (res Container) {
|
||||||
Aliases: res.getAliases(),
|
Aliases: res.getAliases(),
|
||||||
IsExcluded: U.ParseBool(res.getDeleteLabel(LabelExclude)),
|
IsExcluded: U.ParseBool(res.getDeleteLabel(LabelExclude)),
|
||||||
IsExplicit: isExplicit,
|
IsExplicit: isExplicit,
|
||||||
|
IsDatabase: res.isDatabase(),
|
||||||
IdleTimeout: res.getDeleteLabel(LabelIdleTimeout),
|
IdleTimeout: res.getDeleteLabel(LabelIdleTimeout),
|
||||||
WakeTimeout: res.getDeleteLabel(LabelWakeTimeout),
|
WakeTimeout: res.getDeleteLabel(LabelWakeTimeout),
|
||||||
StopMethod: res.getDeleteLabel(LabelStopMethod),
|
StopMethod: res.getDeleteLabel(LabelStopMethod),
|
||||||
|
@ -108,3 +109,35 @@ func (c Container) getPrivatePortMapping() PortMapping {
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var databaseMPs = map[string]struct{}{
|
||||||
|
"/var/lib/postgresql/data": {},
|
||||||
|
"/var/lib/mysql": {},
|
||||||
|
"/var/lib/mongodb": {},
|
||||||
|
"/var/lib/mariadb": {},
|
||||||
|
"/var/lib/memcached": {},
|
||||||
|
"/var/lib/rabbitmq": {},
|
||||||
|
}
|
||||||
|
|
||||||
|
var databasePrivPorts = map[uint16]struct{}{
|
||||||
|
5432: {}, // postgres
|
||||||
|
3306: {}, // mysql, mariadb
|
||||||
|
6379: {}, // redis
|
||||||
|
11211: {}, // memcached
|
||||||
|
27017: {}, // mongodb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c Container) isDatabase() bool {
|
||||||
|
for _, m := range c.Container.Mounts {
|
||||||
|
if _, ok := databaseMPs[m.Destination]; ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range c.Ports {
|
||||||
|
if _, ok := databasePrivPorts[v.PrivatePort]; ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ type ProxyProperties struct {
|
||||||
Aliases []string `yaml:"-" json:"aliases"`
|
Aliases []string `yaml:"-" json:"aliases"`
|
||||||
IsExcluded bool `yaml:"-" json:"is_excluded"`
|
IsExcluded bool `yaml:"-" json:"is_excluded"`
|
||||||
IsExplicit bool `yaml:"-" json:"is_explicit"`
|
IsExplicit bool `yaml:"-" json:"is_explicit"`
|
||||||
|
IsDatabase bool `yaml:"-" json:"is_database"`
|
||||||
IdleTimeout string `yaml:"-" json:"idle_timeout"`
|
IdleTimeout string `yaml:"-" json:"idle_timeout"`
|
||||||
WakeTimeout string `yaml:"-" json:"wake_timeout"`
|
WakeTimeout string `yaml:"-" json:"wake_timeout"`
|
||||||
StopMethod string `yaml:"-" json:"stop_method"`
|
StopMethod string `yaml:"-" json:"stop_method"`
|
||||||
|
|
|
@ -83,6 +83,7 @@ func (p *DockerProvider) LoadRoutesImpl() (routes R.Routes, err E.NestedError) {
|
||||||
func (p *DockerProvider) shouldIgnore(container D.Container) bool {
|
func (p *DockerProvider) shouldIgnore(container D.Container) bool {
|
||||||
return container.IsExcluded ||
|
return container.IsExcluded ||
|
||||||
!container.IsExplicit && p.ExplicitOnly ||
|
!container.IsExplicit && p.ExplicitOnly ||
|
||||||
|
!container.IsExplicit && container.IsDatabase ||
|
||||||
strings.HasSuffix(container.ContainerName, "-old")
|
strings.HasSuffix(container.ContainerName, "-old")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue