由于找不到 git,Docker 构建失败

Rez*_*fra 2 python flask docker

我正在包含requirement.txt 和所有内容的目录中运行以下命令。

sudo docker build -t flask-container .

但我收到这个错误。

Running command git clone -q https://github.com/pysentimiento/pysentimiento /tmp/pip-install-5crn_ko5/pysentimiento_472d6d991b204e42acc02194d0e3b813
  ERROR: Error [Errno 2] No such file or directory: 'git' while executing command git clone -q https://github.com/pysentimiento/pysentimiento /tmp/pip-install-5crn_ko5/pysentimiento_472d6d991b204e42acc02194d0e3b813
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?
Run Code Online (Sandbox Code Playgroud)

Dockerfile -----------------

# Set base image (host OS)
FROM python:3.8-alpine

# By default, listen on port 5000
EXPOSE 5000/tcp

# Set the working directory in the container
WORKDIR /app

# Copy the dependencies file to the working directory
COPY requirements.txt .

# Install any dependencies
RUN pip install -r requirements.txt

# Copy the content of the local src directory to the working directory
COPY app.py .

# Specify the command to run on container start
CMD [ "python", "./app.py" ]
Run Code Online (Sandbox Code Playgroud)

要求.txt

aiohttp==3.8.1
aiosignal==1.2.0
async-timeout==4.0.1
attrs==21.2.0
certifi==2021.10.8
charset-normalizer==2.0.8
click==8.0.3
datasets==1.16.1
dill==0.3.4
emoji==1.6.1
filelock==3.4.0
flasgger==0.9.5
Flask==2.0.2
flask-swagger==0.2.14
frozenlist==1.2.0
fsspec==2021.11.1
git==2.25.1
huggingface-hub==0.2.0
idna==3.3
importlib-resources==5.4.0
itsdangerous==2.0.1
Jinja2==3.0.3
joblib==1.1.0
jsonschema==4.2.1
MarkupSafe==2.0.1
mistune==0.8.4
multidict==5.2.0
multiprocess==0.70.12.2
numpy==1.21.4
packaging==21.3
pandas==1.3.4
pyarrow==6.0.1
pyparsing==3.0.6
pyrsistent==0.18.0
pysentimiento @ git+https://github.com/pysentimiento/pysentimiento@8b89bce29a0e943abd4842e0240873a1874ea846
python-dateutil==2.8.2
pytz==2021.3
PyYAML==6.0
regex==2021.11.10
requests==2.26.0
sacremoses==0.0.46
scikit-learn==1.0.1
scipy==1.7.3
six==1.16.0
sklearn==0.0
swagger-ui-py==21.11.29
threadpoolctl==3.0.0
tokenizers==0.10.3
torch==1.9.0
tqdm==4.62.3
transformers==4.12.5
typing-extensions @ file:///tmp/build/80754af9/typing_extensions_1631814937681/work
urllib3==1.26.7
Werkzeug==2.0.2
xxhash==2.0.2
yarl==1.7.2
zipp==3.6.0
Run Code Online (Sandbox Code Playgroud)

应用程序.py


from flask import Flask, request
from pysentimiento import create_analyzer
analyzer = create_analyzer(task="sentiment", lang="es")

app = Flask(__name__)


@app.route('/', methods=["GET"])
def predict_spanish_sentiment():
    """
    Endpoint to predict the sentiment of a spanish sentence. 
    ---
    parameters:
    -name: utterance
    in: query
    type: str 
    required: true 
    """
    utterance = request.arge.get("utterance")

    prediction = analyzer.predict(utterance) 
    return prediction


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Run Code Online (Sandbox Code Playgroud)

jab*_*son 10

由于未找到 git,这意味着它要么在映像构建期间没有安装,要么在运行它时在容器中找不到。

您可以使用以下选项之一安装 git(取决于您的发行版):

  • Ubuntu/Debian:apt-get install -y git
  • 高山:apk add git
  • 森托斯:yum -y install git

安装前请确保升级软件包列表。

或者,如果 git 已安装,请确保它位于 PATH 中,执行到容器中并回显 PATH,然后检查它是否包含安装 git 的位置。

根据提供的文件,您需要将以下内容添加到 Dockerfile 中。

RUN apk update && apk add git
Run Code Online (Sandbox Code Playgroud)