Вы должны установить docker-compose
внутри контейнера, поскольку образ jenkins/jenkins
не поставляется с docker-compose
. Я бы предложил расширить исходное изображение, создав собственный Dockerfile. Например, внутри любого каталога создайте следующий файл с именем Dockerfile
:
FROM jenkins/jenkins
USER root
# see https://docs.docker.com/compose/install/
RUN curl -L \
"https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose \
&& chmod +x /usr/local/bin/docker-compose
USER jenkins
Теперь внутри этого каталога создайте новый образ, назовем его myjenkins
:
docker build -t myjenkins .
Sending build context to Docker daemon 4.096kB
Step 1/4 : FROM jenkins/jenkins
---> 57f9f0b056cc
Step 2/4 : USER root
---> Using cache
---> f6dfbc759063
Step 3/4 : RUN curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
---> Running in 36c8c22c01fb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 617 0 617 0 0 1944 0 --:--:-- --:--:-- --:--:-- 1946
100 16.4M 100 16.4M 0 0 2404k 0 0:00:06 0:00:06 --:--:-- 3423k
Removing intermediate container 36c8c22c01fb
---> ca119efd5ea6
Step 4/4 : USER jenkins
---> Running in 5d1149b328b5
Removing intermediate container 5d1149b328b5
---> 841b3adbfe94
Successfully built 841b3adbfe94
Successfully tagged myjenkins:latest
Вы можете перечислить его с помощью docker image ls
:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
myjenkins latest 841b3adbfe94 10 minutes ago 585MB
...
Теперь запустите свой контейнер. Используя вашу команду, вам нужно только заменить имя образа jenkins/jenkins
в конце вашей команды на myjenkins
(обратите внимание, что для проверки на моей ма c P C я удалил bind-mount из /var/jenkins_home
, но Вы должны быть в состоянии сохранить это). Кроме того, при необходимости удалите ранее запущенный контейнер:
docker run --rm -p 81:8080 -p 50000:50000 --name myjenkins -v /var/run/docker.sock:/var/run/docker.sock myjenkins
Введите свой контейнер и проверьте, установлено ли docker-compose
:
docker exec -it myjenkins bash
jenkins@43b74c8f602b:/$ docker-compose --version
docker-compose version 1.25.3, build d4d1b42b
jenkins@43b74c8f602b:/$