By Jhappy77
Hi,
I have an app on App Platform. It is gathering custom logs on local files. Every time I deploy the app, the log files are destroyed (I know this is expected behavior).
I do not want to forward my logs (to Papertrail, Datadog, or Logtail). Instead, I just want to upload them to an online storage service anytime the app redeploys, and I need this to happen BEFORE the redeploy starts and the local files are destroyed. I have coded all the upload functionality into a script that can be called from npm.
My question: Is there a way of telling App Platform to run a certain command before it destroys the local files on a redeploy? I can do it manually via the console but it’s extremely tedious to have to do it every time I merge in a PR or redeploy the app.
A.K.A is there a way of adding a pre-deploy step to the “deploy” pipeline that uses the currently deployed app?
I was looking into Workers, but it seems like they need a separate source, whereas I just want to run a command from within my existing main app component (so it can access the logs).
Thanks for your help!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi there,
This is not currently an option with the App Platform, but what you could do is to use GitHub actions to run specific actions on every pull request for example:
https://github.com/features/actions
That way, before merging your pull request, which triggers the deployment on the App Platform side, the GitHub action will run and execute the specific steps that you need. You could for example have an API endpoint that the GitHub action triggers which then starts the upload process of your files.
Hope that this helps!
Best,
Bobby
👋 Hi @jhappy77
You can run some cleanup code by monitoring for a termination signal. For example, in a node.js app you could have:
process.on('SIGTERM', () => {
console.info('SIGTERM signal received.');
/**
* This is where cleanup code can be run. For example, closing down the http server.
*/
console.log('Closing http server.');
server.close(() => {
console.log('Http server closed.');
});
process.exit(0)
});
For more information on shutdown sequences in App Platform (which runs on Kubernetes), checkout this article: Kubernetes best practices: terminating with grace
Some additional notes:
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.