Hi Coty,

To learn more about snaps in general and how to make them you can go to
http://snapcraft.io/

The tl;dr is that they are self-contained application bundles, including
dependencies, that are packed into a squashfs that is then loop-mounted
when installed. This means that the application's own files are
read-only and isolated from other apps and the system, which makes
updating them safe and simple. For Tomcat this means it includes a JRE,
OpenSSL, and anything else needed for Tomcat to run.

I have attached the files needed to build a Tomcat snap using the the
Snapcraft tool (only available on Ubuntu currently), just run "snapcraft
snap" in the same directory as these files. The snapcrafy.yaml will pull
Tomcat 8.5.5 binary tarball as it's source, so no re-compiling is
needed. The run.sh simply sets some environment variables to their
proper snap-environment locations, copies the server.xml into
CATALINE_BASE (if it's not there), and starts Tomcat.

Because the snapcraft.yaml declares this to be a daemon, it will create
a systemd service file upon installation and start it automatically.
Then you can copy a .war files into $CATALINA_BASE/webapps/ and Tomcat
will pick it up. I tested with the sample.war from
https://tomcat.apache.org/tomcat-8.0-doc/appdev/sample/ and it works
with the servlet portion, but not the JSP (I suspect the JSP compilation
is trying write to use a read-only space, but haven't dug too far into it).

If you don't run Ubuntu the easiest way to build the snap is in a VM or
container that has Ubuntu 16.04, just install the snapcraft package from
the archive. If you just want to try a pre-built binary, you can
download mine from http://people.ubuntu.com/~mhall119/snaps/

You can install it on Ubuntu 16.04 or a derivative right away with "snap
install $snapfile --force-dangerous". The --force-dangerous is required
because the resulting snap won't be signed. On non-Ubuntu distros you
can get snaps running by following the instructions on
http://snapcraft.io/docs/core/install


Michael Hall
mhall...@ubuntu.com

On 09/14/2016 11:23 PM, Coty Sutherland wrote:
> Hi Micheal,
> 
> I hadn't heard of snaps (or used Ubuntu much) but the concept seems
> interesting to me. Would you be able to send me links to what you have
> so far so I can check it out? I have a few questions, but I'll reserve
> those until I get a chance to review what you have.
> 
> Thanks!
> 
> 
> On Sep 14, 2016 3:51 PM, "Michael Hall" <mhall...@ubuntu.com
> <mailto:mhall...@ubuntu.com>> wrote:
> 
>     Hi everyone,
> 
>     Ubuntu has developed a new platform for deploying applications using
>     bundled packages called "snaps". These make it easier to deploy and
>     update on Ubuntu independently of it's release cycle (and on non-Ubuntu
>     distros too for that matter). I would like to make Tomcat available in
>     this format so it can be more easily used on lightweight cloud instances
>     or devices like the Raspberry Pi.
> 
>     I have a working example of Tomcat as a snap, and it works really well
>     with a separate read-only CATALINE_HOME and a writable, versioned
>     CATALINA_BASE that will allow for atomic updates and rollbacks without
>     breaking application data, and it's very easy to use.
> 
>     The next step is to contribute this to upstream, where it can be
>     improved (I've only scratched the surface of what can be done with it)
>     and integrated with the CI system so that snap package can be
>     automatically created and uploaded for testers and users. This is where
>     I need help from somebody on this list, so please let me know if you are
>     interested and I will provide you the packaging files (there are only 2)
>     and a working binary package if you want to give it a try.
> 
>     Thanks.
> 
>     --
>     Michael Hall
>     mhall...@ubuntu.com <mailto:mhall...@ubuntu.com>
> 
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
>     <mailto:dev-unsubscr...@tomcat.apache.org>
>     For additional commands, e-mail: dev-h...@tomcat.apache.org
>     <mailto:dev-h...@tomcat.apache.org>
> 

Attachment: snapcraft.yaml
Description: application/yaml

Attachment: run.sh
Description: application/shellscript

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to