簡體   English   中英

通過單個 docker 文件運行兩個單獨的 Python-Flask api

[英]running two separate Python-Flask api via a single docker file

我想通過單個容器在不同端口上運行兩個不同的 python api 文件。

我的 docker 文件如下所示:

FROM python:3.7-slim-buster

RUN apt-get update && apt-get install -y libgtk2.0-dev cmake libpoppler-cpp-dev poppler-utils tesseract-ocr

WORKDIR /app

COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt 



COPY . .

RUN chmod a+x run.sh

CMD ["./run.sh"]

.sh 文件看起來像:

#!/bin/bash

exec python3 /app1/numberToWord.py &
exec python3 /app2/dollarToGbp.py &

雖然 docker 構建成功且沒有任何錯誤,但 docker 運行不會引發任何錯誤並退出命令行。 我很想知道它在哪里失敗,任何見解都受到高度贊賞。

嘗試使用nohup忽略掛斷信號

前任:

#!/bin/bash

nohup python3 /app1/numberToWord.py &
nohup python3 /app2/dollarToGbp.py &

運行容器時,可以指定要運行的特定命令。 您可以使用不同的命令從同一個映像運行兩個容器:

docker run -p 8000:8000 --name spelling -d image /app1/numberToWord.py
docker run -p 8001:8000 --name currency -d image /app2/dollarToGbp.py

這里的重點是每個容器在前台運行一個進程。

如果您的主命令腳本完成並退出,則容器也將退出。 您顯示的腳本僅啟動后台進程然后完成,完成后容器將退出。 需要有一些前台進程來保持容器運行,最簡單的方法是啟動您需要作為容器中唯一進程運行的主服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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