#docker #jenkins #dockerfile #dockerhub
#docker #дженкинс #dockerfile #dockerhub
Вопрос:
Я только начал изучать docker и Jenkins и хотел запустить Jenkins внутри контейнера Docker.
-
Я имею в виду это репозиторий на github. У него есть
Dockerfile
(ссылка на Dockerfile), который используетopenjdk:8-jdk-stretch
в качестве базового образа -
Я хочу использовать
centOS
/ любое другое базовое изображение меньшего размера. - Я попытался написать
FROM centOS
вместоFROM openjdk:8-jdk-stretch
, но это не сработало. - Я хочу, чтобы он запускался на HTTP-порту
9090
и на порту АГЕНТА55000
.
Результат, который я получил, выглядит следующим образом
Итак, это то, что я сделал с Dockerfile
.
FROM openjdk:8-jdk-stretch
RUN apt-get update amp;amp; apt-get install -y git curl amp;amp; rm -rf/var/lib/apt/lists/*
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
ARG http_port=9090
ARG agent_port=55000
Сохраняя все остальные изменения неизменными в соответствии с этим Dockerfile
( ссылка на Dockerfile )
Я хочу, чтобы мой контейнер запускал Jenkins на CentOS / любом другом базовом изображении меньшего размера и мог отправлять этот образ контейнера на мой DockerHub. Я поражен, любая помощь / руководство будут оценены.
Ответ №1:
Размер изображения Дженкинса
Если вам нужно изображение меньшего размера, просто используйте один из следующих тегов изображения:
- дженкинс/jenkins:2.154-тонкий (408 МБ)
- jenkinsci/jenkins:2.154-alpine (222 MB)
Публикация портов
Теперь перейдем к портам. Порты открыты в контейнере не имеет значения, поскольку докер предлагает вам возможность публиковать их в любой порт, который вы выберете на узле Docker.
Короче говоря, запустите свой контейнер с:
docker run -d
-p 9090:8080
-p 55000:50000
jenkinsci/jenkins:2.154-alpine
Добавление файлов в контейнер Jenkins
Если вам нужно добавить файлы в контейнер Jenkins, просто используйте том:
docker run -d
-p 9090:8080
-p 55000:50000
-v /home/somewhere/workspace/:/my_data
jenkinsci/jenkins:2.154-xxxx
Добавление программного обеспечения в образ Jenkins
jenkinsci/jenkins:2.154-slim
На основе slim flavor image основано FROM openjdk:8-jdk-slim
то, на чем основано само по себе FROM debian:stretch-slim
. Теперь, когда мы знаем, что он основан на Debian, установку программного обеспечения можно выполнить с помощью `ap
FROM jenkinsci/jenkins:2.154-slim
USER root
RUN apt-get update
amp;amp; apt-get install -y
curl
git
amp;amp; rm -rf/var/lib/apt/lists/*
USER jenkins
jenkinsci/jenkins:2.154-alpine
В образах со вкусом Alpine вы устанавливаете программное обеспечение с помощью apk.
FROM jenkinsci/jenkins:2.154-alpine
USER root
RUN apk --update add
curl
git
USER jenkins
Изображение CentOS Jenkins
Официальных образов Jenkins docker на основе CentOS нет. Хотя создание собственного возможно, время, которое вы потратите на создание рабочего файла Dockerfile, и время, которое вам придется потратить на его поддержку, скорее всего, не стоит той добавленной стоимости, которую это принесет вам.
Комментарии:
1. Что, если я захочу написать для него свой собственный файл Docker?.
2. После этого, должен ли я просто сделать
docker build -t <image-name> .
, чтобы создать образ контейнера из этого файла docker?.3. Я хочу использовать CentOS в качестве базового образа, поверх которого будет запускаться Jenkins. Я не могу этого сделать?
4. Вы можете, но это намного больше работы, чем использование уже созданного образа