Не удалось создать Dockerfile image / bin / sh: apt-get: not found - PullRequest
0 голосов
/ 28 мая 2020

Привет, могу я попросить помощи Я создаю файл Dockerfile образа, но получаю эту ошибку /bin/sh: apt-get: not found, я не вытаскивал ОС, потому что я знаю, что docker имеет ОС по умолчанию?

Executing busybox-1.31.1-r9.trigger
OK: 12 MiB in 31 packages
Removing intermediate container 9a28ea5578ed
 ---> 73b493dcd606
Step 3/7 : RUN apt-get update    &&  apt-get install –y nginx
 ---> Running in 9e2bb52cd7c8
/bin/sh: apt-get: not found
The command '/bin/sh -c apt-get update    &&  apt-get install –y nginx' returned a non-zero code: 127




FROM php:7.4-fpm-alpine
#RUN docker-php-ext-install pdo
RUN docker-php-ext-install pdo_mysql
RUN apt-get update \
   &&  apt-get install –y nginx

COPY index.php /var/www/myapp
ADD default.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Поскольку вы используете alpine базовое изображение, а не ubuntu. Итак, менеджер пакетов для alpine - это apk, а не apt или apt-get

Команда должна быть

RUN apk update && \
    apk add --no-cache nginx 

--no-cache опция позволяет не кешировать индекс локально , что полезно для хранения небольших контейнеров.

Ссылка: - https://www.cyberciti.biz/faq/10-alpine-linux-apk-command-examples/

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

Дистрибутив Linux для вашего базового образа php:7.4-fpm-alpine - это Alpine вместо Ubuntu, поэтому вам нужно использовать apk вместо apt-get в качестве диспетчера пакетов.

RUN apk update && apk add nginx
...