No, you aren’t building them wrong. The major difference is the choice of libc - alpine uses musl, which is significantly smaller than glibc, at the cost of ease of compilation for the common case. A closer comparable would be tomcat:8.0.36-jre8, which uses glibc. That image comes in at 336MB.
Looking at your deps, you depend on both ant and jdk8. Most likely you don’t need the jdk, but instead the jre - it looks like nobody has packaged the JRE yet. You probably don’t need ant, either.
Thanks @adam! You are right. I did the suggestions you stated; and was able to get a binary that is 361.4MB (slightly larger by 30MB but getting closer).
I moved the ant and jdk as build dependencies as they are required for building tomcat from source. Actual dependencies is blank. In order to get jre, core/jdk8 includes the jre directory so I moved that into my packaging. But I have other issues, where I am able to run hab start bdangit/tomcat inside the studio and it will work; however outside in docker it won’t work as it appears I’m missing some of the shared libraries.
tomcat(O): /hab/pkgs/bdangit/tomcat/8.0.36/20160726221441/jre/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Sounds like I’ll just have to make a hab package for jre.