簡體   English   中英

在 docker 容器內啟動 cron 服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM