Git Apt get无法在ubuntu dockerfile中工作
我对docker还是一个新手,我试图通过写自己的图片和阅读docker in action(ISBN:163330235)来学习 在我自己的代码和书中的示例(第146页)中,我希望通过dockerfile安装git 我的代码:Git Apt get无法在ubuntu dockerfile中工作,git,docker,ubuntu,dockerfile,Git,Docker,Ubuntu,Dockerfile,我对docker还是一个新手,我试图通过写自己的图片和阅读docker in action(ISBN:163330235)来学习 在我自己的代码和书中的示例(第146页)中,我希望通过dockerfile安装git 我的代码: # set base image FROM ubuntu:18.04 # author MAINTAINER me ############## Begin installation ########################## # update and upg
# set base image
FROM ubuntu:18.04
# author
MAINTAINER me
############## Begin installation ##########################
# update and upgrade
RUN apt-get update
RUN apt-get upgrade
# install git
RUN apt-get install -y git
***rest of code omitted***
图书编码:
#An example Dockerfile for installing Git on Ubuntu
FROM Ubuntu:latest
MAINTAINER "dockerinaction@allgeek.com"
RUN apt-get install -y git
ENTRYPOINT ["git"]
但是,在这两种情况下,我都无法找到带有none zeero代码的包eror:
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package git
The command '/bin/sh -c apt-get install -y git' returned a non-zero code: 100
到目前为止我已经试过了
1) 使apt get update和apt get update成为单个命令。当我这样做时,它在这一点上失败了
2) 在安装git之前安装apt传输https,如下所述:
这将成功下载,但一旦再次安装git,我就会收到相同的错误。
这个
3) 遵循上的教程。虽然这是不同的,但它仍然安装x11服务器,这同样在安装时失败
4) 下面是关于堆栈溢出的另一个答案,
我试过安装curl
除第一种方法外,所有这些方法都允许我在尝试安装软件时更新和升级失败。如果我从运行docker的机器上的终端进行更新、升级和安装,我也没有问题
如能就如何纠正此问题提供任何建议,将不胜感激。请尝试
FROM ubuntu:18.04
RUN \
apt-get update \
&& apt-get install -y \
git-core
我不确定,但Dockerfile中的emptylines是个问题在一条运行指令中执行'apt get update'和'apt get install'。这样做是为了确保安装最新的软件包。如果“apt get install”在单独的运行指令中,那么它将重用“apt get update”添加的层,该层可能早就创建好了
RUN apt-get update && \
apt-get install -y git-core
注意:运行说明通过在初始图像的顶部添加层来构建图像。我刚刚尝试了您的Dockerfile,没有发现任何错误。您可以尝试(此处建议)在同一个RUN命令中进行更新和安装,例如
RUN apt get update&&apt get install-y git
。您不需要apt get upgrade
,因为这会升级已安装软件包的版本(参考:),我已删除升级。我甚至不知道我为什么要这么做,只是在很多月前我第一次安装linux时被告知要这么做。从那以后,我就习惯了这样做。它仍然不工作,但我想知道它是否是我的破旧电脑/网络,因为它正在为他人工作。谢谢,它仍然不工作,我想它可能是我的电脑和/或网络,因为它正在为他人工作。我会在周末用一台更现代化的电脑再试一次,而不是在我的工作网络上。如果有效,我将标记为已回答。