Reza Afra
Reza Afra

Reputation: 183

Docker build fails due to not finding git

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)

Upvotes: 4

Views: 18948

Answers (2)

Raisul
Raisul

Reputation: 464

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

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

Upvotes: 5

jabbson
jabbson

Reputation: 4913

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

Upvotes: 13

Related Questions