2017-09-11 2 views
0

Je suis absolument nouveau dans Docker et Jenkins et je veux essayer de vous demander, peut-être que vous êtes en mesure de m'aider. Je souhaite créer un Dockerfile avec toutes les parties de Jenkins nécessaires pour créer une tâche automatisée de vérification d'un github. Donc d'abord j'ai trouvé le dockerfile public sur github (https://github.com/jenkinsci/docker/blob/master/Dockerfile), mais il contient beaucoup de paramètres et je ne suis pas sûr, s'il faut nécessairement utiliser l'ensemble du Dockerfile.Dockerfile pour Jenkins

Premièrement, pouvez-vous juste me donner un conseil, comment modifier le dockerfile? Ou est recommandé d'utiliser le Dockerfile d'origine (URL est supérieure)?

Merci pour vos conseils, les gars, passez une bonne journée.

+0

https://www.youtube. com/watch? v = r5cofUYqnn8, image complète de jenkins. en mode essaim. –

Répondre

1

Ne modifiez pas le Dockerfile . Créer une nouvelle Dockerfile qui commence par:

FROM jenkins 

Et puis placez vos modifications en dessous. Cela inclura tout dans l'image Jenkins officielle, puis ajouter vos personnalisations.

Il ya quelques docs assez bons sur docs.docker.com, en particulier this one parle des meilleures pratiques pour l'écriture Dockerfiles.

+0

Merci beaucoup pour votre aide. Donc, si j'ai besoin d'utiliser des plugins pour Jenkins, il devrait être configuré directement dans l'environnement jenkins, pas dans dockerfile, non? Mais maintenant, j'ai besoin d'étudier certains documents. –

0

Utilisez l'une des theseDocker images comme image de base pour votre Dockerfile et de créer.

0

Le processus standard consiste à étendre les images en amont. Le seul besoin de retirer le Dockerfile d'un projet en amont et de le modifier directement est si vous avez une politique d'entreprise qui vous oblige à tout construire à partir de zéro, ou en amont fait quelque chose d'incorrect avec leur Dockerfile. volumes dans le Dockerfile). La raison de l'extension est que vous pouvez facilement obtenir les derniers correctifs en tirant l'image en amont et en reconstruisant vos images enfant sans essayer de réappliquer leurs modifications à votre Dockerfile. L'image jenkins "officielle" sur le hub Docker a été déplacée plusieurs fois. Il était jenkinsci/jenkins, puis il est entré dans la bibliothèque officielle en tant que jenkins: plus tard, et maintenant il est déplacé à jenkins/jenkins: lts. Un exemple de la façon dont vous souhaitez étendre l'image en amont ressemble à l'exemple ci-dessous:

FROM jenkins/jenkins:lts 

ARG GOSU_VERSION=1.10 

# switch to root, let the entrypoint drop back to jenkins 
USER root 

# install debian packages, gosu, and docker 
RUN apt-get update \ 
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 
    vim \ 
    wget \ 
&& dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ 
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ 
&& chmod +x /usr/local/bin/gosu \ 
&& gosu nobody true \ 
&& curl -sSL https://get.docker.com/ | sh \ 
&& apt-get clean \ 
&& rm -rf /var/lib/apt/lists/* 

# entrypoint is used to update docker gid and revert back to jenkins user 
COPY entrypoint.sh /entrypoint.sh 
ENTRYPOINT ["/entrypoint.sh"] 

J'ai le reste de cet exemple dans mon repo github: https://github.com/bmitch3020/jenkins-docker