Estoy tratando de dockerizar una aplicación Python-Flask simple, pero recibo un error mientras ejecuto mi contenedor.
ventana acoplable: Respuesta de error del daemon: Error al crear el tiempo de ejecución de OCI: container_linux.go:344: el inicio del proceso del contenedor causó "exec: \"python\": archivo ejecutable no encontrado en $PATH": desconocido.
Workdir en localhost:
/home/ubuntu/flask_web - app.py - Dockerfile - requirements.txtapp.py
#flask_web/app.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hey, we have Flask in a Docker container' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')Dockerfile
FROM ubuntu:16.04 MAINTAINER xyz "xyz@gmail.com" RUN apt-get update \ && apt-get install -y software-properties-common vim \ && add-apt-repository ppa:jonathonf/python-3.6 \ && apt-get update -y \ && apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv \ && pip3 install --upgrade pip # We copy just the requirements.txt first to leverage Docker cache COPY ./requirements.txt /app/requirements.txt WORKDIR /app RUN pip install -r requirements.txt COPY . /app ENTRYPOINT [ "python" ] CMD [ "app.py" ]Comandos:
docker build -t flask-test:latest . docker run -p 5000:5000 flask-testEsperado: Flask web debe ejecutarse en el puerto 5000
Resultado actual:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.No hay /usr/bin/python en una imagen acoplable creada por el código anterior. Pero hay /usr/bin/python3 . Por lo tanto, puede usar python3 directamente como su ENTRYPOINT o crear un enlace simbólico.
Estaba teniendo el mismo problema, excepto que gritaba un número diferente al 344
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown. y el archivo docker era
FROM ubuntu:20.04 RUN apt-get update -y RUN apt-get install -y python3 RUN apt-get install -y python3-pip COPY ./requirements.txt /app/requirements.txt WORKDIR /app RUN pip3 install -r requirements.txt COPY . /app ENTRYPOINT [ "python" ] CMD [ "app.py" ] Cambié la línea ENTRYPOINT [ "python" ] a ENTRYPOINT [ "python3" ] Ahora funciona bien. La razón de esto fue que anteriormente había usado Python3, por lo que no había ningún candidato para Python, sino que había Python3.
RUN apt-get install -y python3 RUN apt-get install -y python3-pip