【问题标题】:Can we update git version in the Docker Image?我们可以更新 Docker Image 中的 git 版本吗?
【发布时间】:2020-12-22 16:06:14
【问题描述】:

我正在使用 docker 安装我的依赖项。使用 Node:10.13.0 作为

FROM: node:10.13.0

除了Husky之外的所有依赖都安装好了。

它显示以下内容:

Husky requires Git >=2.13.0. Got v2.11.0.   
husky > Failed to install

所以,问题在于git version 低于 2.13。

在 docker 文件中搜索 init git 版本。但我没有得到任何解决方案。

还有其他方法可以在docker文件中设置git版本吗?

【问题讨论】:

  • node:10.13.0 派生基于什么发行版? (找到它自己的 Dockerfile,并查看FROM: 行)。使用它的上游提供的任何包管理器——如果是FROM ubuntu,那么是apt;如果是FROM alpine,那么apk;等

标签: git docker docker-compose dockerfile docker-registry


【解决方案1】:
  • 下一个意思是node:10.13.0使用debian9,又名stretch

    $ docker run --rm node:10.13.0 cat /etc/issue
    Debian GNU/Linux 9 \n \l
    
  • Next 表示node:10.13.0 默认使用git 2.11

    $ docker run --rm node:10.13.0 git --version
    git version 2.11.0
    

其实gitdebian 9apt repo中使用的是2.11版本,如果要升级到更新的版本,可以使用debian backports,意思是:

Backports 是取自下一个 Debian 版本的软件包

默认情况下,backports 在使用 apt 时不会被使用。您可以使用下一个示例来启用此功能。

Dockerfile:

FROM node:10.13.0
RUN echo "deb http://deb.debian.org/debian stretch-backports main contrib non-free" >> /etc/apt/sources.list; \
    apt-get update; \
    apt-get -t stretch-backports install git -y

验证:

$ docker build -t mynodeimage .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM node:10.13.0
......
Successfully tagged mynodeimage:latest
$ docker run --rm mynodeimage git --version
git version 2.20.1

【讨论】:

  • 获取Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease Could not connect to debian.map.fastlydns.net:80 (151.101.154.132)ubuntu 有没有办法分发?
  • 你有代理吗? I used ubuntu distribution 是什么意思?你的意思是你的主机是ubuntu?
  • 不,不在代理后面。 Debian 和 ubuntu 是两个 Linux 发行版吧?
  • docker run --rm node:10.13.0 ping debian.map.fastlydns.net -c 4 的输出是什么?而且你的基础镜像是debian,为什么要跟我提ubuntu?
  • 对不起,我对使用 docker 完全陌生。现在它正在获取最新的 git 版本。
猜你喜欢
  • 2022-06-15
  • 2018-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-13
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多