Last active
February 3, 2022 11:04
-
-
Save milnomada/e174287b19c0cb43c881411c9dbfd7db to your computer and use it in GitHub Desktop.
Run Cron jobs inside Docker container
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM python:3.8.12-slim-buster | |
RUN apt update && apt install -y cron vim | |
RUN mkdir /code | |
ARG DB_HOST | |
ARG DB_NAME | |
ARG DB_USER | |
ARG DB_PASS | |
ARG CRON_SCHEDULE | |
ENV DB_HOST=${DB_HOST} | |
ENV DB_NAME=${DB_NAME} | |
ENV DB_USER=${DB_USER} | |
ENV DB_PASS=${DB_PASS} | |
ENV CRON_SCHEDULE=${CRON_SCHEDULE:-"* * * * *"} | |
COPY ./app /code/app | |
COPY index.py /code/ | |
WORKDIR /code | |
RUN touch .myenv | |
RUN echo "export DB_HOST=${DB_HOST_REMOTE}" >> .myenv | |
RUN echo "export DB_PASS=\"${DB_PASS_REMOTE}\"" >> .myenv | |
RUN echo "export DB_USER=${DB_USER_REMOTE}" >> .myenv | |
RUN echo "export DB_NAME=${DB_NAME_REMOTE}" >> .myenv | |
RUN echo "source /code/.myenv" > load.sh && chmod +x load.sh | |
RUN echo "python /code/index.py >> /code/cron.log 2>&1 &" > script.sh | |
RUN chmod +x script.sh | |
RUN touch cron.log && chmod 664 cron.log | |
RUN crontab -l | { cat; echo "PATH=/bin/:/usr/bin:/usr/local/bin:$PATH\n\n\ | |
${CRON_SCHEDULE} BASH_ENV=/code/load.sh bash /code/script.sh\n\ | |
"; } | crontab - | |
CMD /etc/init.d/cron start && echo "Listening log..." && tail -f /code/cron.log |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment