Установите python -pip с помощью apt-get через apt-get в Ubuntu в Dockerfile - PullRequest
0 голосов
/ 02 мая 2020

Я гуляю по следующему сообщению в блоге:

https://codefresh.io/docker-tutorial/hello-whale-getting-started-docker-flask/


Вот репозиторий Github этого проекта (любезно предоставлен автором):

https://github.com/ChloeCodesThings/chloe_flask_docker_demo


Dockerfile:

FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]

После клонирования этого проекта на мой локальный компьютер с MacOS Catalina ( 10.15.4).

И выполнение следующей команды (из веб-папки):

docker build -t flask-hello:latest .

Вывод в стандартный вывод:

Sending build context to Docker daemon  36.86kB
Step 1/8 : FROM ubuntu:latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete 
fc878cd0a91c: Pull complete 
6154df8ff988: Pull complete 
fee5db0ff82f: Pull complete 
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
 ---> 1d622ef86b13
Step 2/8 : RUN apt-get update -y
 ---> Running in b85d892341c1
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [3717 B]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [106 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [35.3 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [3190 B]
Get:7 http://archive.ubuntu.com/ubuntu focal-backports InRelease [89.2 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:9 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [14.1 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [3190 B]
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [42.7 kB]
Fetched 13.5 MB in 4s (3264 kB/s)
Reading package lists...
Removing intermediate container b85d892341c1
 ---> 3b5aa4c86a97
Step 3/8 : RUN apt-get install -y python-pip python-dev build-essential
 ---> Running in a9f9fdde1725
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python-pip
The command '/bin/sh -c apt-get install -y python-pip python-dev build-essential' returned a non-zero code: 100

Docker версия:

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:21:11 2020
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:29:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Почему он не может найти python-pip для Ubuntu, используя apt-get? Любые предложения приветствуются!

Ответы [ 2 ]

1 голос
/ 02 мая 2020

Я подозреваю, что первая строка в Dockerfile пытается использовать последнюю версию Ubuntu 20.04, у которой нет пакета.

Измените на версию 18.04, и она будет работать:

FROM ubuntu:18.04
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
0 голосов
/ 02 мая 2020
FROM ubuntu:18.04

WORKDIR /app
ARG DEBIAN_FRONTEND=noninteractive


RUN apt-get update && apt-get upgrade -y && apt-get clean
RUN apt-get install -y curl python3.6 python3.6-dev python3.6-distutils
RUN apt-get install -y enchant
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
RUN update-alternatives --set python /usr/bin/python3.6
RUN curl -s https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
    python get-pip.py --force-reinstall && \
    rm get-pip.py

RUN apt-get -y install python3-dev python3-setuptools \
  && apt-get -y install build-essential checkinstall \
  && apt-get -y install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
  && cd /usr/local/bin \
  && pip3 install --upgrade pip
ADD . .
RUN pip3 install -r requirements.txt
ADD . .
ENTRYPOINT ["python"]
CMD ["app.py"]

Попробуйте использовать это.

...