[英]Start cron service inside docker container
我正在嘗試在容納我的后端微服務的 Docker 容器內運行 cron 作業。 正在通過 FastAPI 調用修改 cron 作業。 但是,盡管正在創建作業,但它並沒有被執行。 事實上,在使用docker exec -it bash my_container
訪問終端后,我嘗試手動添加一個虛擬 cron 作業,但即使這樣也沒有執行。 我使用service cron status
檢查了狀態,它說[ ok ] cron is running.
Dockerfile:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
# Install dependencies:
COPY requirements.txt .
RUN pip3 install -r requirements.txt
RUN apt-get update
RUN apt-get install cron
RUN service cron start
COPY ./app /app
請幫幫我。
我建議創建一個 docker 容器來運行這個單一任務。 然后使用 Jenkins 之類的東西來安排將創建容器的任務,運行任務,然后關閉。
這樣,您將對任務的狀態有一定的了解。 他們跑了嗎? 成功了嗎?
這是一個常見問題,原因如下:
RUN service cron start
語句在鏡像構建期間執行,而不是在容器運行期間執行。
要在容器運行時運行cron
,最好創建一個 shell 腳本,其中包含您要運行的所有內容:
ENTRYPOINT ["bash", "-c", "service cron start && /app"]
注意約定是有一個名為
./entrypoint.sh
的腳本,但為了簡單起見,我已經在線顯示了這些命令。
請注意,您隨后將運行一個運行您的進程的腳本,這可能會影響容器等對信號的處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.