Мне нужно установить самую последнюю версию CMake поверх контейнера Docker jenkins.Мой Dockerfile выглядит следующим образом:
FROM jenkins/jenkins:lts
# Install required plugins
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
# Install CMake
RUN mkdir $JENKINS_HOME/cmake
RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.13.1/cmake-3.13.1-Linux-x86_64.tar.gz | tar --strip-components=1 -xz -C $JENKINS_HOME/cmake
Когда я запускаю интерактивный контейнер FROM
($ docker run -it jenkins/jenkins:lts bash
), я могу установить CMake на $JENKINS_HOME/cmake
.
$ docker run -it jenkins/jenkins:lts bash
$ mkdir $JENKINS_HOME/cmake
$ curl -L https://github.com/Kitware/CMake/releases/download/v3.13.1/cmake-3.13.1-Linux-x86_64.tar.gz | tar --strip-components=1 -xz -C $JENKINS_HOME/cmake
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 620 0 620 0 0 826 0 --:--:-- --:--:-- --:--:-- 826
100 36.6M 100 36.6M 0 0 5485k 0 0:00:06 0:00:06 --:--:-- 7581k
$ ls $JENKINS_HOME/cmake
ОднакоКогда я пытаюсь построить этот образ, используя docker build
, сборка завершается неудачно:
...
Step 5/7 : RUN mkdir $JENKINS_HOME/cmake
---> Running in 6e8b914f2264
Removing intermediate container 6e8b914f2264
---> 24a75881d500
Step 6/7 : RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.13.1/cmake-3.13.1-Linux-x86_64.tar.gz | tar --strip-components=1 -xz -C $JENKINS_HOME/cmake
---> Running in d1759df1fbdb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 620 0 620 0 0 988 0 --:--:-- --:--:-- --:--:-- 988
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0tar: /var/jenkins_home/cmake: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
0 36.6M 0 50724 0 0 35123 0 0:18:13 0:00:01 0:18:12 82077
curl: (23) Failed writing body (2500 != 16360)
Запуск whoami
из Dockerfile и из интерактивного сеанса приводит к jenkins
.
В чем основное различие между обоими подходами к установке и как я могу установить последние двоичные файлы CMake, используя docker build
?