【问题标题】:git install fails in DockerfileDockerfile 中的 git install 失败
【发布时间】:2018-06-13 12:42:57
【问题描述】:

我正在尝试在进行 docker 构建时提取我正在处理的存储库,所以我关注了this tutorial,所以我添加了我的Dockerfile

# this is our first build stage, it will not persist in the final image
FROM ubuntu as intermediate

# install git
RUN apt-get update \
    apt-get upgrade \
    apt-get install git

# add credentials on build
RUN mkdir ~/.ssh && ln -s /run/secrets/host_ssh_key ~/.ssh/id_rsa

# make sure your domain is accepted
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.org >> /root/.ssh/known_hosts

RUN git clone git@github.com:my-repo/myproject.git

FROM ubuntu
# copy the repository form the previous image
COPY --from=intermediate /your-repo /srv/your-repo

在我的docker-compose.yml 中添加了

secrets:
  host_ssh_key:
    file: ~/.ssh/id_rsa

我正在添加

secrets:
  - host_ssh_key

在其中一项服务中。

由于这仅供我本地使用(我不打算部署或将其用于生产,我只是想测试一下)以这种方式使用它很好 - 如果它可以工作,因为目前在 git install 阶段构建失败并出现错误

E:更新命令不带参数

错误:服务“web”构建失败:命令“/bin/sh -c apt-get update apt-get upgrade apt-get install git”返回非零代码:100

我错过了什么?

【问题讨论】:

  • 你能接受答案吗?以便向其他人表明某些解决方案对您有帮助。如果你对所有有答案的问题都做了,那就太好了。
  • 当然,尽管最后我做了不同的事情。感谢您的帮助:)

标签: git docker


【解决方案1】:

您对此进行了过度分析。这只是一个简单的错字。应该是:

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y git

这是 3 个单独的命令。

【讨论】:

  • 仍然收到The command '/bin/sh -c apt-get update && apt-get upgrade && apt-get install git' returned a non-zero code: 1
  • 这是另一个问题,现在apt-get install正在等待您提交安装。所以你应该在install之后添加-y。从您的错字看来,您似乎不知道如何使用 Linux。也许您应该阅读apt-get 周围的所有内容?
  • 我会尝试使用该标志,但总的来说,我可能会在构建过程中跳过 git clone。至少这就是 devops 正在做的事情。我只是在测试 docker,而不是我的主要专业领域:D
  • in node:alpine: RUN apk update && \ apk upgrade && \ apk add git
【解决方案2】:

一些想法:

    1. apt-get install git 替换为apt-get install --assume-yes git。如果没有--assume-yes,它会提示您进行确认,您无法给出确认,它会很聪明地弄清楚并假设您的意思是“不”。
    1. 您添加了 ssh 密钥,但您确认它是 0600。我只想复制它,特别是 chmod 0600 ~/.ssh/id_rsa 以确保。

总体而言,您的 Dockerfile 看起来非常聪明,我从阅读中得到了一些新的想法。

【讨论】:

  • 刚刚阅读教程 - 非常好。他们使用-y 开关。我使用--assume-yes 开关。它们是同义词,我认为这就是您所缺少的。如果您提供了有效的“id_rsa”文件,那么我的第二点不适用。
  • 您对问题的编辑应该被还原,这显然与作者的意图相冲突。
【解决方案3】:

对于那些使用alpine 图像的人来说,RUN apk add --no-cache git 对我有用。

【讨论】:

  • 谢谢你这节省了一些时间。请问你为什么使用---no-cache?
猜你喜欢
  • 1970-01-01
  • 2022-01-17
  • 2021-12-26
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 2023-01-08
相关资源
最近更新 更多