You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Martynas Jusevičius <ma...@atomgraph.com> on 2021/05/15 08:19:59 UTC

Tomcat fails to start in Docker on Amazon ECS

Hi,

I have a Docker image that extends tomcat:9.0.39-jdk11 and at the very
end of the entrypoint script calls 'catalina.sh run'.

This has worked fine both on my local Windows and on a CentOS server.
However when I start a container on Amazon ECS with AMI Linux, I get
the error below when catalina.sh is called.
This has obviously to do with the java command, but why? Has anyone
experienced something similar?

NOTE: Picked up JDK_JAVA_OPTIONS:
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Usage: java [options] <mainclass> [args...]
           (to execute a class)
   or  java [options] -jar <jarfile> [args...]
           (to execute a jar file)
   or  java [options] -m <module>[/<mainclass>] [args...]
       java [options] --module <module>[/<mainclass>] [args...]
           (to execute the main class in a module)
   or  java [options] <sourcefile> [args]
           (to execute a single source-file program)
" Arguments following the main class, source file, -jar <jarfile>,"
 -m or --module <module>/<mainclass> are passed as the arguments to
 main class.
 where options include:
    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
    --class-path <class search path of directories and zip/jar files>
"                  A : separated list of directories, JAR archives,"
                  and ZIP archives to search for class files.
    -p <module path>
    --module-path <module path>...
"                  A : separated list of directories, each directory"
                  is a directory of modules.
    --upgrade-module-path <module path>...
"                  A : separated list of directories, each directory"
                  is a directory of modules that replace upgradeable
                  modules in the runtime image
"    --add-modules <module name>[,<module name>...]"
                  root modules to resolve in addition to the initial module.
"                  <module name> can also be ALL-DEFAULT, ALL-SYSTEM,"
                  ALL-MODULE-PATH.
    --list-modules
                  list observable modules and exit
    -d <module name>
    --describe-module <module name>
                  describe a module and exit
    --dry-run     create VM and load main class but do not execute main method.
                  The --dry-run option may be useful for validating the
                  command-line options such as the module system configuration.
    --validate-modules
                  validate all modules and exit
                  The --validate-modules option may be useful for finding
                  conflicts and other errors with modules on the module path.
    -D<name>=<value>
                  set a system property
    -verbose:[class|module|gc|jni]
                  enable verbose output
    -version      print product version to the error stream and exit
    --version     print product version to the output stream and exit
    -showversion  print product version to the error stream and continue
    --show-version
                  print product version to the output stream and continue
    --show-module-resolution
                  show module resolution output during startup
    -? -h -help
                  print this help message to the error stream
    --help        print this help message to the output stream
    -X            print help on extra options to the error stream
    --help-extra  print help on extra options to the output stream
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
"                  load native agent library <libname>, e.g. -agentlib:jdwp"
                  see also -agentlib:jdwp=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
"                  load Java programming language agent, see
java.lang.instrument"
    -splash:<imagepath>
                  show splash screen with specified image
                  HiDPI scaled images are automatically supported and used
"                  if available. The unscaled image filename, e.g. image.ext,"
                  should always be passed as the argument to the -splash option.
                  The most appropriate scaled image provided will be picked up
                  automatically.
                  See the SplashScreen API documentation for more information
    @argument files
                  one or more argument files containing options
    -disable-@files
                  prevent further argument file expansion
    --enable-preview
                  allow classes to depend on preview features of this release
"To specify an argument for a long option, you can use --<name>=<value> or"
--<name> <value>.

Martynas
atomgraph.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat fails to start in Docker on Amazon ECS

Posted by Martynas Jusevičius <ma...@atomgraph.com>.
My bad :) CATALINA_OPTS was malformed.

On Sat, May 15, 2021 at 10:19 AM Martynas Jusevičius
<ma...@atomgraph.com> wrote:
>
> Hi,
>
> I have a Docker image that extends tomcat:9.0.39-jdk11 and at the very
> end of the entrypoint script calls 'catalina.sh run'.
>
> This has worked fine both on my local Windows and on a CentOS server.
> However when I start a container on Amazon ECS with AMI Linux, I get
> the error below when catalina.sh is called.
> This has obviously to do with the java command, but why? Has anyone
> experienced something similar?
>
> NOTE: Picked up JDK_JAVA_OPTIONS:
> --add-opens=java.base/java.lang=ALL-UNNAMED
> --add-opens=java.base/java.io=ALL-UNNAMED
> --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
> Usage: java [options] <mainclass> [args...]
>            (to execute a class)
>    or  java [options] -jar <jarfile> [args...]
>            (to execute a jar file)
>    or  java [options] -m <module>[/<mainclass>] [args...]
>        java [options] --module <module>[/<mainclass>] [args...]
>            (to execute the main class in a module)
>    or  java [options] <sourcefile> [args]
>            (to execute a single source-file program)
> " Arguments following the main class, source file, -jar <jarfile>,"
>  -m or --module <module>/<mainclass> are passed as the arguments to
>  main class.
>  where options include:
>     -cp <class search path of directories and zip/jar files>
>     -classpath <class search path of directories and zip/jar files>
>     --class-path <class search path of directories and zip/jar files>
> "                  A : separated list of directories, JAR archives,"
>                   and ZIP archives to search for class files.
>     -p <module path>
>     --module-path <module path>...
> "                  A : separated list of directories, each directory"
>                   is a directory of modules.
>     --upgrade-module-path <module path>...
> "                  A : separated list of directories, each directory"
>                   is a directory of modules that replace upgradeable
>                   modules in the runtime image
> "    --add-modules <module name>[,<module name>...]"
>                   root modules to resolve in addition to the initial module.
> "                  <module name> can also be ALL-DEFAULT, ALL-SYSTEM,"
>                   ALL-MODULE-PATH.
>     --list-modules
>                   list observable modules and exit
>     -d <module name>
>     --describe-module <module name>
>                   describe a module and exit
>     --dry-run     create VM and load main class but do not execute main method.
>                   The --dry-run option may be useful for validating the
>                   command-line options such as the module system configuration.
>     --validate-modules
>                   validate all modules and exit
>                   The --validate-modules option may be useful for finding
>                   conflicts and other errors with modules on the module path.
>     -D<name>=<value>
>                   set a system property
>     -verbose:[class|module|gc|jni]
>                   enable verbose output
>     -version      print product version to the error stream and exit
>     --version     print product version to the output stream and exit
>     -showversion  print product version to the error stream and continue
>     --show-version
>                   print product version to the output stream and continue
>     --show-module-resolution
>                   show module resolution output during startup
>     -? -h -help
>                   print this help message to the error stream
>     --help        print this help message to the output stream
>     -X            print help on extra options to the error stream
>     --help-extra  print help on extra options to the output stream
>     -ea[:<packagename>...|:<classname>]
>     -enableassertions[:<packagename>...|:<classname>]
>                   enable assertions with specified granularity
>     -da[:<packagename>...|:<classname>]
>     -disableassertions[:<packagename>...|:<classname>]
>                   disable assertions with specified granularity
>     -esa | -enablesystemassertions
>                   enable system assertions
>     -dsa | -disablesystemassertions
>                   disable system assertions
>     -agentlib:<libname>[=<options>]
> "                  load native agent library <libname>, e.g. -agentlib:jdwp"
>                   see also -agentlib:jdwp=help
>     -agentpath:<pathname>[=<options>]
>                   load native agent library by full pathname
>     -javaagent:<jarpath>[=<options>]
> "                  load Java programming language agent, see
> java.lang.instrument"
>     -splash:<imagepath>
>                   show splash screen with specified image
>                   HiDPI scaled images are automatically supported and used
> "                  if available. The unscaled image filename, e.g. image.ext,"
>                   should always be passed as the argument to the -splash option.
>                   The most appropriate scaled image provided will be picked up
>                   automatically.
>                   See the SplashScreen API documentation for more information
>     @argument files
>                   one or more argument files containing options
>     -disable-@files
>                   prevent further argument file expansion
>     --enable-preview
>                   allow classes to depend on preview features of this release
> "To specify an argument for a long option, you can use --<name>=<value> or"
> --<name> <value>.
>
> Martynas
> atomgraph.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org