簡體   English   中英

如何為 python 應用程序創建多級 dockerfile?

[英]How to create a multistage dockerfile for a python app?

下面是我的 python 應用程序的目錄結構和 dockerfile。 為了運行main.py ,我需要通過運行generate_data.py創建一個數據集,它位於數據目錄中。 如何創建多級 dockerfile 以便首先創建數據然后運行main.py文件? 我是使用 docker 的新手,我感到不知所措。

在此處輸入圖像描述

FROM python:3.7.2-slim
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /usr/src/app
CMD ["python", "./src/main.py"]

您可以創建一個 shell 腳本,然后將其用於 CMD

開始.sh:

#!/bin/bash
python generate_data.py
python ./src/main.py

Dockerfile:

FROM python:3.7.2-slim
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /usr/src/app
CMD ["sh", "start.sh"]

使用 docker 的一個關鍵點可能是隔離您的程序,因此乍一看,您可能希望將它們移動到單獨的容器中並使用共享卷或 docker 網絡相互通信,但如果您真的需要它們在同一個容器,您可以使用 bash 腳本來實現。 並將 CMD 替換為:

COPY run.sh
RUN chmod a+x run.sh
CMD ["./run.sh"]

您還可以將 if 語句包含到 bash 腳本中,並通過 arguments 將 arguments 通過 Z05B6053CCE691A694A999CCE69Z 腳本傳遞給 bash 腳本。

暫無
暫無

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

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