Home > database >  Docker build fails due to not finding git
Docker build fails due to not finding git

Time:12-02

I am running the following command in the directory where I have the requirement.txt and everything.

sudo docker build -t flask-container .

but I get this error.

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?

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" ]

requirements.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

app.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)

CodePudding user response:

since git wasn't found, it means it either wasn't installed during the image build or wasn't found in the container when you ran it.

You can install git with one of the following (depending on your distro):

  • Ubuntu/debian: apt-get install -y git
  • Alpine: apk add git
  • Centos: yum -y install git

Make sure to upgrade the package list before installing it.

Alternatively, if git is already installed, make sure it is in the PATH, exec into your container and echo the PATH, then check if it includes the location where git is installed.

Based on the provided files, you need to add the following to the Dockerfile.

RUN apk update && apk add git

CodePudding user response:

You must have git in your Dockerfile. Just put this line in your Dockerfile.

RUN apt-get update && apt-get install -y git
  • Related