mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-23 08:48:32 +02:00
feat: predefined docker image blacklist, avoid proxing service backends, refactor
This commit is contained in:
59
internal/docker/image_blacklist.go
Normal file
59
internal/docker/image_blacklist.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package docker
|
||||
|
||||
var imageBlacklist = map[string]struct{}{
|
||||
// pure databases without UI
|
||||
"postgres": {},
|
||||
"mysql": {},
|
||||
"mariadb": {},
|
||||
"redis": {},
|
||||
"memcached": {},
|
||||
"mongo": {},
|
||||
"rabbitmq": {},
|
||||
"couchdb": {},
|
||||
"neo4j": {},
|
||||
"telegraf": {},
|
||||
|
||||
// search engines, usually used for internal services
|
||||
"elasticsearch": {},
|
||||
"meilisearch": {},
|
||||
"kibana": {},
|
||||
"solr": {},
|
||||
}
|
||||
|
||||
var imageBlacklistFullname = map[string]struct{}{
|
||||
// headless browsers
|
||||
"gcr.io/zenika-hub/alpine-chrome": {},
|
||||
"eu.gcr.io/zenika-hub/alpine-chrome": {},
|
||||
"us.gcr.io/zenika-hub/alpine-chrome": {},
|
||||
"asia.gcr.io/zenika-hub/alpine-chrome": {},
|
||||
|
||||
// image update watchers
|
||||
"watchtower": {},
|
||||
"getwud/wud": {},
|
||||
}
|
||||
|
||||
var authorBlacklist = map[string]struct{}{
|
||||
// headless browsers
|
||||
"selenium": {},
|
||||
"browserless": {},
|
||||
"zenika": {},
|
||||
|
||||
"zabbix": {},
|
||||
|
||||
// docker
|
||||
"moby": {},
|
||||
"docker": {},
|
||||
}
|
||||
|
||||
func (image *ContainerImage) IsBlacklisted() bool {
|
||||
_, ok := imageBlacklist[image.Name]
|
||||
if ok {
|
||||
return true
|
||||
}
|
||||
_, ok = imageBlacklistFullname[image.Author+":"+image.Name]
|
||||
if ok {
|
||||
return true
|
||||
}
|
||||
_, ok = authorBlacklist[image.Author]
|
||||
return ok
|
||||
}
|
||||
Reference in New Issue
Block a user