Docker构建Ubuntu镜像报错,命令返回非零代码100求解决
解决Docker构建Ubuntu镜像时的"Unable to locate package –y"错误
嘿,这个坑我刚踩过!你看到的E: Unable to locate package –y错误,本质原因特别简单:你用了中文全角的破折号(–)代替了英文半角的减号(-),apt把这个错误的符号当成了要安装的包名,自然找不到对应的软件包啦。
修正方案
首先把Dockerfile里所有的–y替换成-y,另外我建议你合并多个RUN命令——Docker镜像每一层都会占用存储空间,合并后能让镜像更轻量化,修正后的Dockerfile如下:
FROM ubuntu RUN apt-get update && \ apt-get install -y apache2 apache2-utils && \ apt-get clean EXPOSE 80 CMD ["apache2ctl", "-D", "FOREGROUND"]
额外小提示:为什么要合并RUN命令?
- 减少镜像层数,避免不必要的存储空间浪费
- 单独执行
apt-get update后,如果后续安装间隔时间较长,缓存的软件包索引可能过期,合并成一条命令能保证更新和安装用的是同一套最新索引
重新构建镜像
最后执行正确的构建命令(注意这里的-t也要用英文减号,别再用中文破折号了哦):
docker build -t="mywebserver" .
这样就能顺利构建你的Apache web服务器镜像啦!
内容的提问来源于stack exchange,提问作者Sritam Jagadev
相关产品推荐
相关产品推荐

