0

我正在尝试运行 docker 基础映像,但遇到错误/bin/sh: 1: python: not found。我首先构建一个父图像,然后使用下面的 bash 脚本对其进行修改

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

和 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

之后,我运行以下脚本来创建和运行基础映像:

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

使用以下 Dockerfile:

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

我也尝试通过基础镜像的 Dockerfile 安装 python,但我仍然得到同样的错误。

4

1 回答 1

1

恕我直言,更好的解决方案是使用官方 python 图像之一。

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

解决python找不到的问题——而不是

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

OP 应该符号链接到/usr/bin/python,而不是/usr/local/bin/python像他们在原始帖子中所做的那样。另一种方法是使用绝对符号链接,如下所示。

ln -s /usr/bin/python3 /usr/bin/python
于 2021-01-27T02:50:28.007 回答