11import docker.registry.web.Registry
2+ import docker.registry.web.Setting
23import docker.registry.web.User
34
4- class BootStrap {
5+ public class BootStrap {
56
67 def init = { servletContext ->
78 if (! User . findByUsername(" admin" )) {
@@ -12,30 +13,45 @@ class BootStrap {
1213 }
1314
1415 log. info(" Checking for registries in system env" )
15- System . getenv(). each { key , urlStr ->
16+ System . getenv(). each { key , val ->
1617 if (key. matches(" REG(\\ d)" )) {
17- log. info(" Found registry $urlStr . Creating..." )
18- def reg = Registry . fromUrl(urlStr)
19-
20- if (reg) {
21- if (Registry . findByHostAndApiVersion(reg. host, reg. apiVersion)) {
22- log. info(" Not creating registry ${ urlStr} as it already exists" )
23- } else {
24- log. info(" Registry ${ reg} doesn't exist; saving" )
25- reg. save()
26- }
27-
28- if (! reg. ping()) {
29- log. warn(" Registry '${ reg.toUrl()} ' ping failed! Check it's up!" )
30- }
31-
32- } else {
33- log. error(" Couldn't parse valid registry URL from $urlStr " )
34- }
18+ handleRegistry(val)
19+ } else if (" READ_ONLY" . equalsIgnoreCase(key)) {
20+ handleReadOnlyMode(val)
3521 }
3622 }
3723 }
3824
25+ def handleReadOnlyMode (String val ) {
26+ if (val?. matches(" true|false" )) {
27+ new Setting (name : " READ_ONLY" , value : val. toString()). save()
28+ log. info(" Read only mode enabled" )
29+ } else {
30+ log. error(" Ignoring value ${ val} for READ_ONLY mode; it's not valid" )
31+ }
32+ }
33+
34+ def handleRegistry (final String val ) {
35+ log. info(" Found registry $val . Creating..." )
36+ def reg = Registry . fromUrl(val)
37+
38+ if (reg) {
39+ if (Registry . findByHostAndApiVersion(reg. host, reg. apiVersion)) {
40+ log. info(" Not creating registry ${ val} as it already exists" )
41+ } else {
42+ log. info(" Registry ${ reg} doesn't exist; saving" )
43+ reg. save()
44+ }
45+
46+ if (! reg. ping()) {
47+ log. warn(" Registry '${ reg.toUrl()} ' ping failed! Check it's up!" )
48+ }
49+
50+ } else {
51+ log. error(" Couldn't parse valid registry URL from $val " )
52+ }
53+ }
54+
3955 def destroy = {
4056 }
4157}
0 commit comments