नमस्ते, मैं एक डॉक कंटेनर में क्रोन की नौकरी चलाने की कोशिश कर रहा हूं। इसलिए मैंने इसे अपने में जोड़ा हैDockerfile
मेरे Dockerfile
FROM nginx:stable
RUN apt-get update -y && apt-get upgrade -y && apt-get install -y \
vim \
git \
curl \
wget \
certbot \
cron
COPY cron/crontab /etc/crontab
RUN chmod 0644 /etc/cron.d/crontab
RUN /etc/init.d/cron start
मेरी crontab
फाइल
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
*/1 * * * * root echo "test" >>~/readme
लेकिन यह काम नहीं करता है।
/etc/init.d/cron start
अगर मुझे यह काम करना है तो मुझे अपने nginx कंटेनर में मैन्युअल रूप से कमांड चलाना होगा ।
इसलिए मैंने अपने में एक एंट्रीपॉइंट जोड़ा है Dockerfile
, इसलिए कंटेनर शुरू होने पर इस कमांड को निष्पादित किया जा सकता है।
# ENTRYPOINT
ADD entrypoint.sh /entrypoint.sh
RUN chmod 777 /entrypoint.sh
मेरे entrypoint.sh
#!/usr/bin/env bash
/etc/init.d/cron start
मेरे docker-compose
entrypoint: /entrypoint.sh
लेकिन मेरी यह त्रुटि है:
OCI रनटाइम निष्फलता विफल: निष्कर्ष विफल हुआ: container_linux.go: 296: कंटेनर प्रक्रिया प्रारंभ करने का कारण "process_linux.go: 86: निष्पादन सेटिंग प्रक्रिया \" निकास स्थिति 21 \ "हुई: अज्ञात
क्या मैं कुछ भुल गया?
PS: मैंने इस ट्यूटोरियल का अनुसरण किया है