创建 Dockerfile 镜像 /bin/sh 失败:apt-get:未找到

问题描述 投票:0回答:2

您好,我可以寻求一些帮助吗?我正在构建镜像 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;"]
docker dockerfile docker-image
2个回答
10
投票

当您使用

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/


4
投票

基础镜像

php:7.4-fpm-alpine
的 Linux 发行版是 Alpine 而不是 Ubuntu,因此您需要使用
apk
而不是
apt-get
作为包管理器。

RUN apk update && apk add nginx
© www.soinside.com 2019 - 2024. All rights reserved.