Дженкинс, работающий в контейнере с CentOS в качестве базового образа?

#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. Вы можете, но это намного больше работы, чем использование уже созданного образа