cabolabs-ehrserver
cabolabs-ehrserver copied to clipboard
Test deploying as docker container
http://nimavat.me/blog/deploy-grails-application-war-to-tomcat-docker-container
http://mrhaki.blogspot.com.uy/2015/10/grails-goodness-run-grails-application.html
I got the cabolabs-ehrserver running in Docker recently. I am in the process of updating the Dockerfile and Docker.md information and adding docker-compose.yml and will submit a PR.

@robdyke thanks, please send a PR when you can share your working file. I'll update immediately.
@ppazos https://github.com/robdyke/cabolabs-ehrserver/tree/docker-contrib
Updating docs at present.
@robdyke you are awesome, let me check!
Running docker-compose fails
web_1 | 16-Oct-2020 11:38:39.601 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/8.5.58
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 10 2020 21:45:33 UTC
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.58.0
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.19.128-microsoft-standard
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
web_1 | 16-Oct-2020 11:38:39.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-8/jre
web_1 | 16-Oct-2020 11:38:39.605 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_265-b01
web_1 | 16-Oct-2020 11:38:39.605 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
web_1 | 16-Oct-2020 11:38:39.605 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
web_1 | 16-Oct-2020 11:38:39.605 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
web_1 | 16-Oct-2020 11:38:39.605 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
web_1 | 16-Oct-2020 11:38:39.606 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
web_1 | 16-Oct-2020 11:38:39.606 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
web_1 | 16-Oct-2020 11:38:39.606 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
web_1 | 16-Oct-2020 11:38:39.606 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
web_1 | 16-Oct-2020 11:38:39.606 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
web_1 | 16-Oct-2020 11:38:39.610 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
web_1 | 16-Oct-2020 11:38:39.610 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
web_1 | 16-Oct-2020 11:38:39.610 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
web_1 | 16-Oct-2020 11:38:39.611 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.25] using APR version [1.6.5].
web_1 | 16-Oct-2020 11:38:39.611 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
web_1 | 16-Oct-2020 11:38:39.611 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
web_1 | 16-Oct-2020 11:38:39.616 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d 10 Sep 2019]
web_1 | 16-Oct-2020 11:38:39.690 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
web_1 | 16-Oct-2020 11:38:39.700 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
web_1 | 16-Oct-2020 11:38:39.712 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 508 ms
web_1 | 16-Oct-2020 11:38:39.736 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
web_1 | 16-Oct-2020 11:38:39.736 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.58
web_1 | 16-Oct-2020 11:38:39.754 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
web_1 | 16-Oct-2020 11:38:43.202 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
web_1 | setConfiguration xsd/OperationalTemplate.xsd xsd/Version.xsd
web_1 | 2020-10-16 11:39:07.482 INFO ehrserver2.BootStrap : checking local repos exist and are accessible
web_1 | 2020-10-16 11:39:07.485 INFO ehrserver2.BootStrap : extending base classes
web_1 | 2020-10-16 11:39:07.512 INFO ehrserver2.BootStrap : creating configuration items
web_1 | 2020-10-16 11:39:07.857 INFO ehrserver2.BootStrap : creating plans
web_1 | 2020-10-16 11:39:07.919 INFO ehrserver2.BootStrap : creating roles
web_1 | 2020-10-16 11:39:07.956 INFO ehrserver2.BootStrap : creating default users
web_1 | 2020-10-16 11:39:08.379 INFO ehrserver2.BootStrap : creating default organizations
web_1 | 2020-10-16 11:39:08.509 INFO ehrserver2.BootStrap : assigning roles
web_1 | 2020-10-16 11:39:08.584 INFO ehrserver2.BootStrap : template setup
web_1 | 2020-10-16 11:39:08.612 INFO ehrserver2.BootStrap : creating OPT repo folder for organization e9d13294-bce7-44e7-9635-8e906da0c914
web_1 | 2020-10-16 11:39:08.612 INFO ehrserver2.BootStrap : indexing OPTs for organization e9d13294-bce7-44e7-9635-8e906da0c914
web_1 | 2020-10-16 11:39:08.638 ERROR o.s.boot.SpringApplication : Application startup failed
web_1 |
web_1 | java.io.FileNotFoundException: /app/opts/base_opts
web_1 | at org.codehaus.groovy.runtime.ResourceGroovyMethods.checkDir(ResourceGroovyMethods.java:1065)
web_1 | at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileMatch(ResourceGroovyMethods.java:1439)
web_1 | at org.codehaus.groovy.runtime.dgm$940.invoke(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:144)
web_1 | at com.cabolabs.openehr.opt.manager.OptRepositoryFSImpl.getAllOptKeysAndContents(OptRepositoryFSImpl.groovy:105)
web_1 | at com.cabolabs.openehr.opt.manager.OptRepository$getAllOptKeysAndContents.call(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService.$tt__setupBaseOpts(OperationalTemplateIndexerService.groovy:220)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:947)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:930)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:92)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService$_setupBaseOpts_closure3.doCall(OperationalTemplateIndexerService.groovy)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:436)
web_1 | at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)
web_1 | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
web_1 | at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService.setupBaseOpts(OperationalTemplateIndexerService.groovy)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService$setupBaseOpts.call(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
web_1 | at ehrserver2.BootStrap$_setupTemplates_closure32.doCall(BootStrap.groovy:788)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:436)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2151)
web_1 | at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
web_1 | at ehrserver2.BootStrap.setupTemplates(BootStrap.groovy:775)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:161)
web_1 | at ehrserver2.BootStrap$_closure1.doCall(BootStrap.groovy:60)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:414)
web_1 | at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:541)
web_1 | at grails.util.Environment.executeForEnvironment(Environment.java:534)
web_1 | at grails.util.Environment.executeForCurrentEnvironment(Environment.java:510)
web_1 | at org.grails.web.servlet.boostrap.DefaultGrailsBootstrapClass.callInit(DefaultGrailsBootstrapClass.java:74)
web_1 | at org.grails.web.servlet.context.GrailsConfigUtils.executeGrailsBootstraps(GrailsConfigUtils.java:65)
web_1 | at org.grails.plugins.web.servlet.context.BootStrapClassRunner.onStartup(BootStrapClassRunner.groovy:53)
web_1 | at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:263)
web_1 | at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
web_1 | at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
web_1 | at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
web_1 | at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)
web_1 | at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:146)
web_1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
web_1 | at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
web_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
web_1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
web_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
web_1 | at grails.boot.GrailsApp.run(GrailsApp.groovy:84)
web_1 | at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:156)
web_1 | at org.grails.boot.context.web.GrailsAppServletInitializer.createRootApplicationContext(GrailsAppServletInitializer.groovy:57)
web_1 | at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:91)
web_1 | at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
web_1 | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5144)
web_1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
web_1 | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
web_1 | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
web_1 | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
web_1 | at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970)
web_1 | at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1840)
web_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
web_1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
web_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
web_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
web_1 | at java.lang.Thread.run(Thread.java:748)
web_1 |
web_1 | 16-Oct-2020 11:39:10.279 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
web_1 | org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
web_1 | at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
web_1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
web_1 | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
web_1 | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
web_1 | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
web_1 | at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970)
web_1 | at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1840)
web_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
web_1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
web_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
web_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
web_1 | at java.lang.Thread.run(Thread.java:748)
web_1 | Caused by: java.lang.reflect.UndeclaredThrowableException
web_1 | at org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:316)
web_1 | at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:757)
web_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
web_1 | at grails.boot.GrailsApp.run(GrailsApp.groovy:84)
web_1 | at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:156)
web_1 | at org.grails.boot.context.web.GrailsAppServletInitializer.createRootApplicationContext(GrailsAppServletInitializer.groovy:57)
web_1 | at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:91)
web_1 | at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
web_1 | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5144)
web_1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
web_1 | ... 10 more
web_1 | Caused by: java.io.FileNotFoundException: /app/opts/base_opts
web_1 | at org.codehaus.groovy.runtime.ResourceGroovyMethods.checkDir(ResourceGroovyMethods.java:1065)
web_1 | at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileMatch(ResourceGroovyMethods.java:1439)
web_1 | at org.codehaus.groovy.runtime.dgm$940.invoke(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:144)
web_1 | at com.cabolabs.openehr.opt.manager.OptRepositoryFSImpl.getAllOptKeysAndContents(OptRepositoryFSImpl.groovy:105)
web_1 | at com.cabolabs.openehr.opt.manager.OptRepository$getAllOptKeysAndContents.call(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService.$tt__setupBaseOpts(OperationalTemplateIndexerService.groovy:220)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:947)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:930)
web_1 | at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:92)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService$_setupBaseOpts_closure3.doCall(OperationalTemplateIndexerService.groovy)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:436)
web_1 | at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)
web_1 | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
web_1 | at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService.setupBaseOpts(OperationalTemplateIndexerService.groovy)
web_1 | at com.cabolabs.opt.OperationalTemplateIndexerService$setupBaseOpts.call(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
web_1 | at ehrserver2.BootStrap$_setupTemplates_closure32.doCall(BootStrap.groovy:788)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:436)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
web_1 | at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2151)
web_1 | at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
web_1 | at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
web_1 | at ehrserver2.BootStrap.setupTemplates(BootStrap.groovy:775)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
web_1 | at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
web_1 | at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:161)
web_1 | at ehrserver2.BootStrap$_closure1.doCall(BootStrap.groovy:60)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
web_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
web_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
web_1 | at java.lang.reflect.Method.invoke(Method.java:498)
web_1 | at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
web_1 | at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
web_1 | at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099)
web_1 | at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
web_1 | at groovy.lang.Closure.call(Closure.java:420)
web_1 | at groovy.lang.Closure.call(Closure.java:414)
web_1 | at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:541)
web_1 | at grails.util.Environment.executeForEnvironment(Environment.java:534)
web_1 | at grails.util.Environment.executeForCurrentEnvironment(Environment.java:510)
web_1 | at org.grails.web.servlet.boostrap.DefaultGrailsBootstrapClass.callInit(DefaultGrailsBootstrapClass.java:74)
web_1 | at org.grails.web.servlet.context.GrailsConfigUtils.executeGrailsBootstraps(GrailsConfigUtils.java:65)
web_1 | at org.grails.plugins.web.servlet.context.BootStrapClassRunner.onStartup(BootStrapClassRunner.groovy:53)
web_1 | at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:263)
web_1 | at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
web_1 | at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
web_1 | at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
web_1 | at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
web_1 | at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)
web_1 | at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:146)
web_1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
web_1 | at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
web_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
web_1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
web_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
web_1 | ... 17 more
web_1 | 16-Oct-2020 11:39:10.282 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
web_1 | java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
web_1 | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:747)
web_1 | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
web_1 | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
web_1 | at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970)
web_1 | at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1840)
web_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
web_1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
web_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
web_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
web_1 | at java.lang.Thread.run(Thread.java:748)
web_1 | 16-Oct-2020 11:39:10.284 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [30,528] ms
web_1 | 16-Oct-2020 11:39:10.285 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/config]
web_1 | 16-Oct-2020 11:39:10.324 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/config] has finished in [39] ms
web_1 | 16-Oct-2020 11:39:10.327 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
web_1 | 16-Oct-2020 11:39:10.335 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 30622 ms
Figured it out. Fixed with #1088