Justin Ong
Justin Ong

Reputation: 21

/bin/sh python not found error when running docker base image

I am trying to run a docker base image but am encountering the error /bin/sh: 1: python: not found. I am first building a parent image and then modifying it using the bash script below

#!/usr/bin/env bash
docker build -t <image_name>:latest .
docker run <image_name>:latest
docker push <image_name>:latest

and the Dockerfile

FROM ubuntu:18.04

# Installing Python
RUN apt-get update \
  && apt-get install -y python3-pip python3-dev \
  && cd /usr/local/bin \
  && ln -s /usr/bin/python3 python \
  && pip3 install Pillow boto3

WORKDIR /app

After that, I run the following script to create and run the base image:

#!/usr/bin/env bash
docker build -t <base_image_name>:latest .
docker run -it <base_image_name>:latest

with the following Dockerfile:

FROM <image_name>:latest
COPY app.py /app
# Run app.py when the container launches
CMD python /app/app.py

I have also tried installing python through the Dockerfile of the base image, but I still get the same error.

Upvotes: 2

Views: 4244

Answers (1)

jkr
jkr

Reputation: 19240

IMHO a better solution would be to use one of the official python images.

FROM python:3.9-slim
RUN pip install --no-cache-dir Pillow boto3
WORKDIR /app

To fix the issue of python not being found -- instead of

   cd /usr/local/bin \
&& ln -s /usr/bin/python3 python

OP should symlink to /usr/bin/python, not /usr/local/bin/python as they did in the original post. Another way to do this is with an absolute symlink as below.

ln -s /usr/bin/python3 /usr/bin/python

Upvotes: 2

Related Questions