Schedule Jobs
Learn how to automate tasks using Dokploy's Schedule Jobs feature
Schedule Jobs in Dokploy allows you to create and manage automated tasks that run on a specified schedule using cron expressions. Each job execution creates a log entry where you can monitor the output and execution status.
Job Types
Dokploy supports four types of scheduled jobs:
- Application Jobs: Run commands inside specific application containers
- Compose Jobs: Execute commands in Docker Compose services
- Server Jobs: Run scripts on remote servers
- Dokploy Server Jobs: Execute tasks on the Dokploy server itself
Container-based Jobs (Application and Compose)
For application and compose jobs, you can run single commands that will be executed inside the target container. Dokploy internally uses Docker exec to run these commands:
Example
Assuming you with a nginx container and you want to check the nginx version in a container:
- Create a new schedule job
- Set the command to:
nginx -v
- Configure your desired schedule using cron syntax
- Save and monitor the execution logs
The target container must be running for the job to execute successfully.
For docker compose jobs, is required to not change the COMPOSE_PROJECT_NAME environment variable, since this is used to identify the project.
Server-based Jobs (Server and Dokploy Server)
For remote servers and the Dokploy server, you can write bash scripts to perform various tasks. These scripts can use any command or tool available on the target system.
Make sure any required dependencies are installed on the target server before using them in your scripts.
Example 1: Automatic Docker Cleanup
This script cleans up unused Docker containers. You could schedule it to run every 15 minutes using the cron expression */15 * * * *
:
Example 2: Custom Database Backup
You can create scripts to backup databases that aren't natively supported by Dokploy. Here's an example structure for a custom backup script:
Best Practices
- Always test your commands or scripts manually before scheduling them
- Use appropriate error handling in your scripts
- Consider the impact of scheduled jobs on system resources