±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÏêϸ½éÉÜÁËÈçºÎʵÏÖ£¬git
pushºó£¬jenkins¿ªÊ¼×Ô¶¯¹¹½¨µÄ²½ÖèµÄÏà¹ØÄÚÈÝ¡£ |
|
Ò»²½Ò»²½´òÔìjenkins+docker+nodejsÏîÄ¿µÄ×Ô¶¯²¿Êð»·¾³
½éÉÜ
jenkins+docker+nodejs ×Ô¶¯²¿Êð
ÁÁµã
²ÉÓÃshell×Ô¶¨Òå½Å±¾£¬¿ØÖƼ¯³É²¿Êð»·¾³¸ü¼Ó·½±ãÁé»î
Èç¹û·þÎñÆ÷¸ü»»£¬ÖØÐ²¿ÊðµÄ¹¤×÷Á¿»á±È½ÏС
Éæ¼°µÄdockerÃüÁ»áÓн²½â£¨²»ÖªµÀËã²»ËãÁÁµã£©
ǰÌá
´úÂëͨ¹ýgit¹ÜÀí£¬·ÅÔÚÁËÂëÔÆÉÏ£¨·ÅÔÚgithub»òÕ߯äËûƽ̨Ҳ¶¼¿ÉÒÔ£©
·þÎñÆ÷ÓõÄÑÇÂíÑ·aws£¨°¢ÀïÔÆ£¬ÇàÔÆÒ²Ò»Ñù£©
·þÎñÆ÷ÓõÄubuntu 16.04 (·þÎñÆ÷ϵͳ²»Í¬£¬Ö»ÊÇijЩshellÃüÁͬ¶øÒÑ£¬windows·þÎñÆ÷Óû§£¬ßÀ£¬ÎÒ¾´ÄãÊÇÌõºº×Ó)
¿Í»§¶ËÓõÄmac
docker¾µÏñƽ̨Ϊdockerhub
×¼±¸
·þÎñÆ÷¿ªÍ¨SSH
·þÎñÆ÷°²×°Docker
ÕÆÎÕ»ù±¾µÄshellÃüÁ±¾ÎijöÏÖµÄshellÃüÁî¶¼»á½øÐÐ˵Ã÷£¬cdɶµÄ¾Í²»ËµÁË...£©
¿ªÊ¼
dockerÔËÐÐjenkins
·þÎñÆ÷ °²×°docker
mac·þÎñÆ÷°²×°½Ì³Ì
linux·þÎñÆ÷°²×°½Ì³Ì
windows·þÎñÆ÷°²×°½Ì³Ì
·þÎñÆ÷ÀÈ¡docker jenkins¾µÏñ£ºdocker pull jenkins:latest
ÀÈ¡jenkins latest°æ±¾¾µÏñ
docker pull jenkins:2.7.4 ÀÈ¡jenkins 2.7.4°æ±¾¾µÏñ
·þÎñÆ÷ÔËÐÐdokcer jenkinsÈÝÆ÷:sudo docker run -d --name jenkins_node
-p 49002:8080 -v /var/jenkins_node:/var/jenkins_home
jenkins:latest
Õâ¾äÃüÁîµÄÒâ˼ÊÇ£ºÔÚºǫ́ÔËÐÐÒ»¸ö»ùÓÚjenkins:latest¾µÏñµÄÈÝÆ÷, ÈÝÆ÷µÄÃû×Ö½Ð×ö jenkins_node
,°ÑÈÝÆ÷µÄ8080¶Ë¿ÚÓ³ÉäΪ49002¶Ë¿Ú£¬²¢ÇÒ°Ñ·þÎñÆ÷ÉϵÄ/var/jenkins_nodeĿ¼¹ÒÔÚµ½dockerÈÝÆ÷ÉϵÄ/var/jenkins_homeĿ¼
-d ºǫ́ÔËÐÐdockerÈÝÆ÷
Èç¹û²»¼Ó-dÔò£¬ÈÝÆ÷ÔËÐлáÕ¼ÓôËÖÕ¶Ë£¬Èç¹ûÖն˹رգ¬ÔòÈÝÆ÷Ò²ÏàÓ¦¹Ø±Õ£¬jenkins¾ÍÎÞ·¨·ÃÎÊÁË¡£¼ÓÉÏ-d,ÈÝÆ÷»áÔÚºǫ́ÔËÐС£
--name ΪÈÝÆ÷Æð¸ö±ðÃû
Èç¹û²»Æð±ðÃû£¬Ôòϵͳ»áĬÈÏ·ÖÅäÒ»¸öËæ»ú±ðÃû£¬ÀàËÆgklasd_sdfwe¡£ÆðÁ˱ðÃûºó£¬ºóÐø»áͨ¹ý¸Ã±ðÃû¹ÜÀí¸ÃdockerÈÝÆ÷£¬Ò²¾ÍÊǹÜÀíjenkins¡£
-p dockerÈÝÆ÷¶Ë¿ÚÓ³Éä
jenkins·þÎñÊÇÔËÐÐÔÚdockerÀïµÄ£¬dockerĬÈϲ»¶ÔÍⱩ¶¶Ë¿ÚµÄ
-v Îļþ¹ÒÔØ
Èç¹û²»¹ÒÔØ£¬ÔòjenkinsËùÓÐlog¡¢Óû§ÅäÖÃÎļþ¶¼»áÔÚdockerÈÝÆ÷ÄÚ£¬Èç¹ûÈÝÆ÷Ïú»Ù£¬ÔòjenkinsµÃÖØÐÂÅäÖÃÒ»±é¡£¹ÒÔØ³öÀ´·½±ãjenkinsÇ¨ÒÆÒÔ¼°¹ÜÀí
ÔËÐгɹ¦½ØÍ¼

jenkins run
²é¿´Äã·þÎñÆ÷ÉϵĵÄ/var/jenkins_nodeÎļþ¼Ð,µ±³öÏÖÏÂͼËùÓÐÎļþʱ£¬Ôò˵Ã÷jenkinsÆô¶¯³É¹¦£¬·ñÔòÔٵȵÈ...30Ãë×óÓÒ¼´¿É

²»³öÒâÍ⣬ä¯ÀÀÆ÷·ÃÎÊhttp://host:49002 £¬»á³öÏÖÈçϽçÃæ

´ò¿ªinitialAdminPasswordÎļþ£¬¸´ÖÆÎļþÄÚÈÝ initialAdminPasswordÎļþλÖÃΪ£º

ΪÁË·½±ã£¬ÓÃmacÑÝʾһÏÂ
initialAdminPasswordÎļþÄÚÈÝÕ³Ìùµ½Administrator passwordÀï
Èç¹û¶ÔÓÚjenkins±È½ÏÊìϤ£¬ÏÂÃæ7,8×Ô¼ºËæÒâ

µÈ...

ÉèÖÃadmin user

nodeÏîÄ¿ÅäÖÃ
ʾÀýÏîÄ¿£ºhttps://git.oschina.net/ryzecode/HelloWorld_Node.git
±ÈÕý³£µÄnodeÏîÄ¿ÔÚ¸ùĿ¼¶àÒ»¸öDockerfileÎļþ
jenkinsÅäÖÃ
²å¼þ°²×°
Ê×Ò³£¬µã»÷ϵͳ¹ÜÀí --> ¹ÜÀí²å¼þ

Ñ¡Ôñ¡°¿ÉÑ¡²å¼þ¡±

ÓÒÉϽǹýÂËSSH£¬--> Ñ¡ÔñPublish Over SSH -->µã»÷ Ö±½Ó°²×°

µÈ´ý°²×°Íê³É

ϵͳÉèÖÃ
Ê×Ò³£¬µã»÷ϵͳ¹ÜÀí --> ϵͳÉèÖÃ

Àµ½×îÏÂÃæÕÒµ½ "Publish over SSH" , ÉèÖ÷þÎñÆ÷µÄSSHÐÅÏ¢

ÏîÄ¿ÅäÖÃ
Ê×Ò³£¬µã»÷×óÉϽǡ±Ð½¨¡±

General£º Ö»Ìî ÏîÄ¿Ãû³Æ¼´¿É

Ô´Âë¹ÜÀí£º ÌîдGitÐÅÏ¢

Èç¹ûGitÏîĿΪ˽ÓÐÏîÄ¿£¬ÔòÐèÒªµã»÷AddÌí¼ÓÄãµÄGitÕ˺ţ¬Íê³ÉÖ®ºóÔÚÕâÀïÑ¡ÔñÄãµÄGitÕ˺Å

¹¹½¨»·¾³£º²ÎÕÕÏÂͼ

ͼÖдúÂëÈçÏ£º
sudo docker stop node || true \
&& sudo docker rm node || true \
&& cd /var/jenkins_node/workspace/node \
&& sudo docker build --rm --no-cache=true
-t node - < Dockerfile \
&& sudo docker run -d --name node -p 3000:3000
-v /var/jenkins_node/workspace/node:/home/project
node
±£´æ£¬·µ»Øµ½Ê×Ò³
Ñ¡Ôñ¸Õ¸Õ´´½¨µÄÏîÄ¿£¬µã»÷"Á¢¼´¹¹½¨"
´Ëʱ·þÎñÆ÷±¾µØÓ²ÅÌÉÏ£¬/var/jenkins_node/workspace/ÏÂÓ¦¸ÃÓÐnode£¨Äã´´½¨µÄjenkinsÏîÄ¿Ãû£©Îļþ¼Ð
/var/jenkins_node/ Ŀ¼ÄÚÈÝÓ¦¸ÃÈçÏÂͼ

ΪÁË·½±ã²é¿´£¬¼ÌÐøÓÃmacÑÝʾĿ¼
¹¹½¨³É¹¦£¬ä¯ÀÀÆ÷ÊäÈë http://host:3000 Ó¦¸ÃÄÜ¿´µ½ÏÂͼÄÚÈÝ

×Ô¶¯²¿Êð
Èç¹ûÏëÒªgit push£¬jenkins¾Í×Ô¶¯²¿Êð£¬ÄǾͼÌÐøÍùÏ¿´...
jenkins --> Ê×Ò³ --> Óû§

ÉèÖà --> µã»÷ "show API Token"

¸´ÖÆAPI TokenÄÚÈÝ

·µ»ØÊ×Ò³ --> node£¨ÏîÄ¿Ãû³Æ£© --> ÅäÖà --> ¹¹½¨´¥·¢Æ÷ -->
Ñ¡Ôñ "´¥·¢Ô¶³Ì¹¹½¨" -->Õ³Ìù"API Token"ÄÚÈݵ½"Éí·ÝÑéÖ¤ÁîÅÆ"

µÇ½gitƽ̨£¬ÕÒµ½ÄãµÄÏîÄ¿£¬Ñ¡Ôñ¹ÜÀí£¬Ñ¡Ôñwebhook

URL ÖÐ node ÇëÌæ»»ÎªÄãÔÚjenkinsÉÏ´´½¨µÄÏîÄ¿Ãû³Æ
tokenΪ¸´ÖÆµÄ API TokenÄÚÈÝ
´ËʱÄãgit push£¬»á·¢ÏÖjenkins²¢Ã»ÓÐ×Ô¶¯¹¹½¨£¬ÊÇÒòΪjenkinsµÄ°²È«²ßÂÔµ¼Öµģ¬»¹ÐèÒªÈçÏÂÉèÖÃ
jenkinsÊ×Ò³£¬Ñ¡Ôñ ϵͳ¹ÜÀí-->Configure Global Security(ϵͳÉèÖÃÏÂÃæÄǸö)
½øÐÐÈçÏÂÉèÖÃ

ÖÁ´Ë£¬ÒÑÍê³É git push ºó£¬jenkins ×Ô¶¯¹¹½¨×Ô¶¯²¿Êð¡£ |