Docker 安装不同版本的 git
Docker installs different version of git
我正在尝试用一些工具做一个容器,其中之一是git.
我需要 git 1.8.4.2 我从这里下载了 tarball
https://github.com/git/git/archive/v1.8.4.2.tar.gz
首先尝试在 vanilla centos:7 容器中进行所有设置以进行测试并且效果很好。
问题是当我使用命令构建容器时,它会安装 git 1.8.4.1。这个版本可能适用于我将要做的事情,但是 我很好奇如果我使用相同的 tarball 和相同的命令为什么会发生这种情况。
这是我的 Dockerfile
FROM centos:7
## Installing git 1.8.4.2
RUN yum -y install gcc make
RUN yum -y install wget zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
RUN wget -O v1.8.4.2.tar.gz https://github.com/git/git/archive/v1.8.4.2.tar.gz
RUN tar -xzvf ./v1.8.4.2.tar.gz
RUN cd git-1.8.4.2/ \
make prefix=/usr/local all \
make prefix=/usr/local install
构建容器时的输出
[root@adbc2f7ab54f git-1.8.4.2]# git --version
git version 1.8.3.1
手动时输出
root@adbc2f7ab54f git-1.8.4.2]# git --version
git version 1.8.4.2
您的 Dockerfile
的最后三行指定了一个命令:
cd git-1.8.4.2/ make prefix=/usr/local all make prefix=/usr/local install
...这是行不通的。结果git1.8.4.2没有编译,没有安装,容器中git的版本是CentOS 7(1.8.3.1)自带的[=14] =]
您需要在三个命令之间添加&&
:
RUN cd git-1.8.4.2/ \
&& make prefix=/usr/local all \
&& make prefix=/usr/local install
我正在尝试用一些工具做一个容器,其中之一是git.
我需要 git 1.8.4.2 我从这里下载了 tarball
https://github.com/git/git/archive/v1.8.4.2.tar.gz
首先尝试在 vanilla centos:7 容器中进行所有设置以进行测试并且效果很好。
问题是当我使用命令构建容器时,它会安装 git 1.8.4.1。这个版本可能适用于我将要做的事情,但是 我很好奇如果我使用相同的 tarball 和相同的命令为什么会发生这种情况。
这是我的 Dockerfile
FROM centos:7
## Installing git 1.8.4.2
RUN yum -y install gcc make
RUN yum -y install wget zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
RUN wget -O v1.8.4.2.tar.gz https://github.com/git/git/archive/v1.8.4.2.tar.gz
RUN tar -xzvf ./v1.8.4.2.tar.gz
RUN cd git-1.8.4.2/ \
make prefix=/usr/local all \
make prefix=/usr/local install
构建容器时的输出
[root@adbc2f7ab54f git-1.8.4.2]# git --version
git version 1.8.3.1
手动时输出
root@adbc2f7ab54f git-1.8.4.2]# git --version
git version 1.8.4.2
您的 Dockerfile
的最后三行指定了一个命令:
cd git-1.8.4.2/ make prefix=/usr/local all make prefix=/usr/local install
...这是行不通的。结果git1.8.4.2没有编译,没有安装,容器中git的版本是CentOS 7(1.8.3.1)自带的[=14] =]
您需要在三个命令之间添加&&
:
RUN cd git-1.8.4.2/ \
&& make prefix=/usr/local all \
&& make prefix=/usr/local install