I have an app written in R which scrapes certain data from a website. I want it to run in regular intervals (once a day) in Docker container and scrape the web site automatically.
I am able to run the container with app once. After the app finishes its job, the the container stops. When I log into the container I see that the cron is set, but it does not get chance to start, because container stops after app finishes its scraping.
I run this command to start the container:
docker run -dt my-docker-image-with-app
Here is my simplified Dockerfile:
FROM my-custom-image:latest # Prepare cron RUN touch /var/log/cron.log RUN chmod 0644 /var/log/cron.log # Copy the app to container COPY /app /app # Setup the cron job for my_app.R to run every day at 10:00 RUN (crontab -l ; echo "* 10 * * * Rscript /app/main/my_app.R >> /var/log/cron.log") | crontab # Run the command on container startup CMD cron && tail -f /var/log/cron.log # Initial start of the app just after the container start CMD Rscript /app/main/my_app.R
What am I doing wrong please? Many thanks in advance.