When containers exit, Enclave automatically restarts them from a pristine
state. This means that any changes to the filesystem will be undone (e.g. PID
files will be deleted, etc.).

As a user, the implication is that if your container started properly, then
Enclave will be able to automatically recover it as well. Whenever this
happens, your Log Drains will be notified (you’ll see a pair of containerhasexited / containerhasstarted events).

If your app is continuously restarting, Enclave will throttle recovery to a
rate of one attempt every 2 minutes.

The one app each container is supposed to run is running in the foreground.

For example, we could rewrite the above Procfile like so:

app:(tail -F log/my-app.log &) && my-app

If you absolutely need to run multiple processes in a container, or need to run
something else in the foreground, then we recommend using a dedicated process
manager in your container, such as Forever or Supervisord.

As mentioned above, Container Recovery automatically restarts your containers
with a pristine filesystem. This maximizes the odds of your container coming
back up when recovered, and mimics what happens when you restart your app
yourself using aptiblerestart.

However, if you don’t want your filesystem to be wiped (e.g. because you’ve
designed it to properly handle being restarted), you can instruct Enclave to do
leave it untouched by setting the APTIBLE_DO_NOT_WIPEConfiguration
variable on your App to any non-null value (e.g. setting it to 1 is fine).