Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ͨ¹ýDockerÈÝÆ÷ÔËÐгÖÐø¼¯³É/³ÖÐø²¿Êð
 
×÷Õߣºjeffsui À´Ô´£ºDockOne.ioƽ̨ ·¢²¼ÓÚ 2015-7-7
  3867  次浏览      27
 

¶ÔÓÚDockerÖ÷Á÷µÄÓ¦Óó¡¾°£º³ÖÐø¼¯³ÉºÍ³ÖÐø²¿Êð(CI/CD)´ó¼ÒÒ²Ðí²¢²»Ä°Éú¡£ÕâÆªÎÄÕ´ӶÀÌØµÄÊӽDzûÊöÁËÈçºÎÀûÓø÷ÖÖÔÆÆ½Ì¨¹¹½¨ÊôÓÚ×Ô¼ºµÄCI/CDÈÝÆ÷£¬±ÊÕß»¹×Ô¼ºÀ©Õ¹ÁËGitlab CIÒýÇæ£¬¶ÔCI¸ÐÐËȤµÄͬѧ¶ÔÕâ¸öÎÄÕÂÓ¦¸ÃºÜ¸ÐÐËȤ¡£

ÎÒÔø¾­Ê¹ÓÃDockerÁËÒ»¶Îʱ¼ä£¬ÔÚ¹ýÈ¥µÄÒ»ÄêÀï°éËæ×ÅÖÚ¶àµÄDockerÈÝÆ÷Ó¿È룬°ïÖúÓû§ÃǸüÈÝÒ׵IJ¿ÊðDockerÈÝÆ÷µ½Éú²ú»·¾³ÖС£Ò»Ð©¹¤¾ßÊǵÚÈý·½¹«Ë¾Ìṩ£¬µ±È»Ò²°üÀ¨Docker¹«Ë¾×Ô¼ºµÄÈÝÆ÷¹¤¾ß(ÀýÈç:Docker Swarm¡¢Docker MachineºÍ Docker Compose)¡£¾¡¹ÜÈç´Ë£¬×î½üÎÒÔÚ²âÊÔÒ»ÖÖеÄDocker¹¤×÷Á÷£¬Ëü¿ÉÒÔÔÊÐíÎÒÍÆËÍ´úÂ룬²¢×ö²âÊÔ¡¢¹¹½¨ÏîÄ¿£¬»¹¿ÉÒÔ½«´úÂ벿Êðµ½ÅÜDockerµÄÉú²ú»·¾³¼¯ÈºÖС£

½ÓÏÂÀ´Â¡ÖؽéÉÜÎÒµÄй¤¾ß bar service¡ª¡ªThreeBar¢Ù£¬Ò»¸ö¿ÉÒÔÔÚHerokuÉÏÔËÐгÖÐø¼¯³É/³ÖÐø²¿Êð(CI/CD)ϵͳ¡£Í¨³£Çé¿öÏ£¬Ð¿ª·¢µÄ´úÂ벿Êðµ½·þÎñÆ÷×ñÑ­ÏÂÃæµÄÁ÷³Ì:

1.´´½¨Ò»¸ö±¾µØ×é¼þ

2.ÍÆËÍ´úÂëµ½git²Ö¿âµÄfeature/development·ÖÖ§

3.Shippable£¬Ò»¸ö³ÖÐø¼¯³ÉÒýÇæ£¬Ò»µ©¼ì²âµ½ÓÐеÄÌá½»(commit)£¬Í¨¹ýpull»ñÈ¡×îеĴúÂë²¢ÇÒÔËÐÐÏà¹ØµÄ²âÊÔ

4.Èç¹û²âÊÔÈ«¶¼Í¨¹ýÁ˵È×ű»²¿Êðµ½Éú²ú»·¾³ÖУ¬¾Í»á´´½¨Ò»¸öºÏ²¢(merge)·ÖÖ§µÄÇëÇó²¢ÇÒÖ´Ðиúϲ¢(merge)

5.ShippableÒ»µ©¼ì²âµ½ÓÐеÄÌá½»µ½Ô¶³Ìmaster·ÖÖ§£¬Í¬Ê±»áÖ´ÐвâÊÔ£¬²¢ÇÒÍÆËÍÔ´Âëµ½HerokuµÄgit²Ö¿âÖÐ

6.Heroku ½«»á×Ô¶¯¹¹½¨Õâ¸öÓ¦ÓóÌÐò²¢ÇÒ²¿ÊðËü¡£

Õâ¸ö¹¤¾ßÕæµÄ¿ÉÒÔ·½±ã¡¢¿ì½ÝµØ²¿ÊðÏîÄ¿²¢ÇÒ±£Ö¤ËùÓв¿Êðµ½Éú²ú»·¾³µÄ´úÂë¶¼¾­¹ýÁ˲âÊÔ¶øÇÒÊǿɿ¿µÄ¡£

¾¡¹ÜÈç´Ë£¬»¹ÊÇÓÐÒ»¸öÎÊÌ⣬ÄǾÍÊÇ´ó¹æÄ£²¿ÊðHerokuÐèÒª»¨·Ñ¸ß°ºµÄ·ÑÓá£Ñ¡ÔñʹÓÃHeroku£¬Ä㽫»á»ñµÃHerokuÌṩµÄÃâ·ÑʹÓÃÓŻݢڣ¬Ò»¸ö±ê×¼µÄ512ÄÚ´æµÄÓÉHerokuÌṩµÄDynoÈÝÆ÷Ö»ÐèÒª35$¡£¹«Æ½µÄ˵£¬HerokuÌṩµÄÐéÄâÖ÷»ú·þÎñÒѾ­¹»Êµ»ÝÁË,µ«ÊÇһЩӦÓõĸ´Ôӳ̶ÈÒªÇóHerokuÌṩ¸üÁé»îµÄ¶¨ÖÆ»¯ÐèÇó£¬ÊÕȡһ¶¨·ÑÓÃÒ²Î޿ɺñ·Ç¡£

µ±È»Docker¿ÉÒÔÌæ´úHeroku£¬ÌṩÏàÓ¦µÄ´úÂ벿Êð·þÎñ¡£µ«ÊÇÉÏÃæÌ¸µ½µÄÎÊÌâÈԾɴæÔÚ¡£µ±ÄãµÄ´úÂëÐèÒª²¿ÊðµÄʱºò£¬Æµ·±ÊÖ¶¯Æô¶¯ºÍ¹Ø±Õ·þÎñÊǵò»³¥Ê§µÄ¡£ÈÃÎÒÃÇÀ´±È½Ïһϲ»Í¬³ÖÐø¼¯³É/³ÖÐø²¿ÊðÒýÇæºÍDockerÏà±ÈÓÐʲô²»Í¬¡£

ѰÕÒ½â¾ö·½°¸

Docker²¢²»ÊǵÚÒ»¸öÒ²²»ÊÇ×îºóÒ»¸ö¶Ëµ½¶ËµÄ³ÖÐø¼¯³É¹¤×÷Á÷½â¾ö·½°¸¡£Òò´ËÎÒÃÇÐèÒª½«Öڶ಻ͬµÄ¼¼Êõ×éºÏµ½Ò»ÆðÓÃÀ´Íê³ÉÎÒÃÇÏëÒªµÄ¹¦ÄÜ¡£ÏÂÃæ½«»á½éÉÜÈý¸öÖ÷Á÷µÄÌṩ¹¹½¨ÒýÇæµÄ·þÎñ:Ò»¸öÊÇCI/CDµÄ²âÊÔÔËÐÐÒýÇæ£¬Ò»¸öÊÇwebÈÝÆ÷£¬Ò»¸öÊÇÈÝÆ÷ÊÊÅäÆ÷¡£

CI/CD ·þÎñÆ÷,²âÊÔÔËÐÐÒýÇæ

µ±ÎÒÃÇÑ¡ÔñÒ»¸öCI/CD·þÎñ£¬Äã±ØÐëÈ·¶¨ËûÃDZØÐëÖ§³ÖDockerÈÝÆ÷µÄ¹¹½¨¡£ÏÂÃæµÄÕâЩ·þÎñ¶¼°üº¬ÁËÕâÒ»¹¦ÄÜ:

1.Shippable (ĿǰÕýÔÚʹÓÃ)

2.Circle CI

3.GitLab CI

µ±È»»¹ÓÐһЩÆäËûµÄ·þÎñ£¬°üÀ¨´óÃû¶¦¶¦µÄJenkins CI server¡£ÕâÀïÄã¿ÉÒÔ×Ô¼ºÈ¥ËÑË÷ÕâЩ·þÎñ¡£Ò»Ð©·þÎñÔÚÈÝÆ÷ÉÏÔËÐй¹½¨£¬µ«ÊÇËûÃÇÏ໥֮¼äÊÇÍêÈ«¶ÀÁ¢µÄ¡£ÉÔºóÄã¾Í»á¿´µ½£¬Äã¿ÉÒÔÔÚDocker-in-DockerÉÏÔËÐзþÎñ£¬Í¬Ê±¿ÉÒÔʹÓÃÔÚDockerÈÝÆ÷ÖÐÔËÐÐµÄÆäËû·þÎñÀ´¹¹½¨ÄãµÄDockerÈÝÆ÷¡£

ÔÚÎÒµÄÊÔÑéÖУ¬ÎÒÑ¡ÔñÁ˺ÍGitlab °æ±¾¹ÜÀí·þÎñÆ÷¶ËͬʱÔËÐÐGitLab CI ϵͳ¡£Í¨¹ýGitlab°æ±¾¹ÜÀí·þÎñÆ÷£¬ÎÒ¿ÉÒÔºÜÇå³þµÄ¿´µ½Ã¿´Îcommit¡£Ñ¡ÔñGitlab²»½öÊÇÒòΪËûÊÇÒ»¸öÃâ·ÑµÄ¿ªÔ´Ô´ÂëÍйֿܲâºÍ¶ÔÍйÜÔÚÉÏÃæµÄÏîÄ¿ÌṩµÄ³ÖÐø²¿ÊðÒýÇæ£¬Í¬Ê±Ò²ÊÇÒ»¸öͨ¹ý°²×°gitlabÔËÐÐÄã×Ô¼ºµÄ·þÎñµÄ¿ªÔ´Èí¼þ¡£

Èç¹ûÄãÑ¡ÔñʹÓÃGitlab CI System´î½¨ÄãµÄ³ÖÐø¼¯³É¿ò¼Ü£¬Äã±ØÐëÌṩÊôÓÚ×Ô¼ºµÄ²âÊÔÔËÐзþÎñ¡£ËÞÖ÷»úµÄ³ÖÐø¼¯³ÉÈí¼þÖ»ÄÜÔËÐÐÌØ¶¨µÄ²âÊÔ·þÎñ£¬Êµ¼ÊÉÏËü×Ô¼º²¢²»ÄÜ×Ô¼ºÖ´ÐвâÊÔÈÎÎñ£¬Í¨³£¶¼ÊÇÆô¶¯Óɱ¾»úÌṩÏàÓ¦µÄ²âÊÔ·þÎñÀ´Ö´Ðеģ¬Äã²»¹â¿ÉÒÔͨ¹ý·þÎñÌṩÉÌÆô¶¯ÒýÇæ»òÕßÄãÖ±½ÓÔËÐÐÄã±¾»úÉϵķþÎñ(ÐéÄâ»úVM»òDockerÈÝÆ÷)¡£

·þÎñÆ÷ÍйÜÌṩÉÌ

µ±È»ÄãͬʱҲÐèÒªÒ»¸ö·þÎñÆ÷ÍйÜÌṩÉÌÈÃDockerÊØ»¤½ø³Ì¿ÉÒÔÔÚËüÖ®ÉÏÔËÐС£²»ÐÒµÄÊÇ£¬Ê¹ÓÃDockerÒâζמ­³£ÐèÒªÔËÐк͹ÜÀí×Ô¼ºµÄ·þÎñÆ÷£¬Ò²¾ÍÊÇÄ㽫Ҫ¸ºÔðÕâ¸öÖ÷»úµÄÔËά¡£µ«ÊÇ£¬ÎÒÏëͨ¹ýÏÂÃæµÄÄÚÈÝ˵Ã÷£¬Äã¿ÉÒÔÔÚDockerÔËÐÐÒ»¸ö¸ß¿ÉÓᢶàÊý¾ÝÖÐÐļܹ¹£¬ÕâÒâζ׿´±ãÊÇÍ£»úÒ»¸öСʱҲ²»»áÏñÒÔǰÄÇÑù¶ÔÒµÎñÓ°ÏìÄÇô¾Þ´ó¡£

³£ÓõķþÎñÆ÷ÍйÜÌṩḚ́üÀ¨ÏÂÃæµÄ¼¸¸ö¢Û£º

1.Amazon Web Services EC2

2.Digital Ocean

3.Vultr

4.RunAbove

ÒµÎñÁ÷³Ì

¼´ÊÇÄãÓÐÁËÒ»Ì×¹¹½¨ºÃÁ˵ÄDockerÈÝÆ÷ºÍÄܹ»ÔËÐÐDockerÊØ»¤½ø³ÌµÄ·þÎñÆ÷¡£Ä㻹ÊÇÐèÒªÒ»¸öÄܹ»±»ÇáÒׯô¶¯µÄÈÝÆ÷²¢ÇÒÄܹ»ÔÚ¹¹½¨Ò»¸öоµÏñµÄʱºòÄÜÖØ¸´²¿ÊðËûÃÇ¡£ÕýÈçÎÒ×î½üÕýÔÚʹÓõÄÃû½ÐTutumµÄÒµÎñÁ÷³Ì·þÎñ¡£

Ŀǰ£¬TutumÊÇÒ»¸öÄܰïÖúÄã¹ÜÀíÄãµÄÈÝÆ÷²¿Êð¹¤×÷Á÷µÄ·þÎñÐÎʽ¡£Óë´Ëͬʱ£¬Ä㻹ÄÜÔÚ¸÷ÖÖÔÆÆ½Ì¨ÉÏ¿ìËÙ¶¯Ì¬Ôö¼Ó½Úµã£¬´´½¨Ð·þÎñ£¬Í¨¹ýÒ»¸ö˽ÓеÄregisterÀ´²¿ÊðÄãµÄÓ¦Óá£

´ËÍ⣬Tutum»¹ÎªÄãµÄÈÝÆ÷´´½¨ÁËÒ»¸ö˽ÓÐÍøÂ磬Òâζ×Å¿ÉÒÔͨ¹ýÄãµÄTutumÕË»§ÄãµÄDockerÈÝÆ÷ÓµÓÐ×Ô¼ºµÄ˽Óй̶¨IPµØÖ·²¢ÇÒͨ¹ý·ÓÉÀ´·ÃÎÊÆäËûÈÝÆ÷¡£ÎÞÂÛÄãµÄÎïÀí»úÊÇ·ñÔÚͬһ¸öÊý¾ÝÖÐÐÄ£¬»¹ÊÇͨ¹ýÊÀ½ç¸÷µØµÄ²»Í¬µÄ·þÎñÆ÷ÍйÜÌṩÉÌ¡£Ëü¶¼½«ÔÊÐíÄã´´½¨Ò»¸ö»ùÓÚ¶à·þÎñÆ÷¡¢¶àÔÆÆ½Ì¨µÄµ¯ÐԵĽâ¾ö·½°¸¡£Èç¹ûÄã֮ǰ¼û¹ýFlannel by CoreOS£¬TutumµÄ˽ÓÐÍøÂçºÍËü²î²»¶à¡£

ÎÒÒ»Ö±ÔÚѰÕÒÀàËÆÉÏÃæÌ¸µ½µÄÕâÖÖ·þÎñ¡£¾ÍÔÚǰ²»¾Ã£¬ÎÒ¸Õ×öÁËÒ»¸öʵÑ飺ÔÚ¶àÈÝÆ÷DockerÖ®¼äͨ¹ývpn´´½¨Ò»¸öP2PÍøÂç¡£ÕâÊǺܾÃ֮ǰµÄDockerÍøÂçÅäÖôﲻµ½µÄÐèÇ󣬵«ÊÇÏÖÔÚTutum×öµ½ÁË¡£

Tutum ͬʱҲÕûºÏÁËCI/CD×é¼þ£¬²¢ÇÒÖ§³ÖgitÍÆËÍ(push)¡£µ±Tutum Íê³É¹¦ÄܵÄʱºò£¬Ëü¿ÉÄܳÉΪΨһµÄÄãÐèÒª°üº¬µÄµ½Ô´Âë²Ö¿âÖÐµÄÆäËû·þÎñ¡£

Tutum ÓµÓÐÎÒÃÇÐèÒª½øÐÐCI/CDµÄ¼¸¸ö¹Ø¼ü×é¼þ£º

1.Ò»¸ö˽ÓеÄΪÈÝÆ÷¾µÏñ×¼±¸µÄ×¢²áÖÐÐÄ

2.µ±ÐµľµÏñÍÆË͵½×¢²áÖÐÐĵÄʱºòÖØÐ²¿ÊðÈÝÆ÷

3.¼ò±ãµÄÈÝÆ÷À©ÈÝ(ÔÚ½çÃæÊÓͼÉÏ,¿ÉÒÔͨ¹ý»¬¶¯N »òMµÄ·½Ê½µ÷ÕûÈÝÆ÷´óС)

4.ÔÚTutumµÄ½çÃæÉÏÌí¼Ó½Úµã

ÆäËûÎÒÃÇÖµµÃ¹Ø×¢µÄ×é¼þ£º

1.ÔÚ¶ÔÒ»¸öwebÓ¦ÓÃÈÝÆ÷Ëõ·Åºó,»ùÓÚ×ÔÊ¡µÄ·½Ê½µÄDNS¶¯Ì¬½âÎö¡£¾Ù¸öÀý×Ó,ÄãµÄhaproxy·ÓÉ»á×Ô¶¯·¢ÏÖÐÂÔöÈÝÆ÷²¢ÇÒÌí¼Óµ½Â·ÓÉÁбíÖС£

2.˽ÓеÄÍøÂ縲¸Ç

3.²»ÔÙÊܲ»Í¬Ôƹ©Ó¦É̵ÄÏÞÖÆ,´´½¨×Ô¼ºµÄ½Úµã

°ÑËùÓж«Î÷×é×°µ½Ò»Æð

ÏÂÃæ¾ÍÌô¸É»õ˵ÏÂÎÒµÄʵÑé¹ý³Ì£º

1.ËÞÖ÷»úʹÓÃGitlab´î½¨µÄÔ´ÂëÔ¶³Ì²Ö¿â

2.ËÞÖ÷»úʹÓÃGitlab CI´î½¨µÄCI/CDÒýÇæ

3.RunAbove×÷Ϊ·þÎñÆ÷ÌṩÉ̶ÔËùÓÐCI/CDÔËÐÐÒýÇæµÄÈÝÆ÷ÍйܢÜ

4.Tutum ×÷ΪҵÎñÁ÷³ÌºÍ·þÎñµÄ¹ÜÀí·þÎñÌṩ

µ±ËùÓеÄÊÂÇé½áÊø£¬Ò²×é×°Íê±Ï£¬gitµÄÌá½»¼Ç¼»î¶¯Í¼£¬ÈçÏÂͼËùʾ:

²¿ÊðTutum ´úÀí

ÕýÒòΪÈç´Ë£¬ÎÒÃÇÊÂʵÉÏÊÇʹÓÃTutumÈ¥²¿ÊðGitLab CI runners¡£ÎÒ¸øÄãµÄ½¨ÒéÊÇ£¬ÏȰ²×°Tutum agents¡£Æô¶¯ËùÓÐÄãÏ£ÍûʹÓõķþÎñ£¬ÕâÑùÔÚTutumµÄÒDZíÅÌÉϾÍÄÜ¿´µ½Bring your own node ×ÖÑùµÄ°´Å¥¡£µã»÷Ëü£¬Ä㽫»áÊÕµ½Ò»¸öÈçÏÂÃæËùʾµÄÃüÁîÐУº

curl -Ls https://get.tutum.co/ | sudo -H sh -s XXXXXXXXXXXXXXXXXXX

ͨ³£ÔÚijһ¸ö½ÚµãÔËÐÐÉÏÊöÃüÁî×Ô¶¯Ìí¼Óµ½ÄãµÄTutumÕË»§£¬Óë´Ëͬʱ½ø³ÌÒ²»á×Ô¶¯Ìí¼Óµ½ÆäËû½Úµã(ÿ´Îµ±Äãµã»÷Bring your own node°´Å¥µÄʱºò)¡£

Ò»µ©Tutum agent°²×°µ½ÄãµÄËùÓнڵãÉÏ£¬Ä㽫»áÔÚÒDZíÅÌÉÏ¿´µ½Ëü¡£ÔÚÕâÒ»µãÉÏ£¬ÄãÒ²ÐíÏë¸øÕâ¸ö½ÚµãÌùÉÏÊʵ±µÄ±êÇ©¡£ÔÊÐí¶ÔÓ¦µÄ·þÎñÆ÷ÔÚÄĸö½ÚµãÉÏÔËÐС£¾Ù¸öÀý×Ó£¬Äã¿ÉÄÜÓÐÒ»×é½Úµã±ê¼ÇΪtag»òproductionÄ¿µÄÊÇΪÁË´´½¨Ò»Ì×»·¾³£¬Òà»òÕßÊÇÓÃÀ´×ö³ÖÐø¼¯³ÉµÄÒ»¸ö½Úµã±ê¼Ç£¬ÕâЩֻÄÜÔÚËÞÖ÷»úÉÏÔËÐС£

Äã¿ÉÒÔͨ¹ýµã»÷½ÚµãÃû³ÆÀ´±ê¼ÇÒ»¸ö½Úµã£¬Ìí¼ÓµÄ±ê¼Ç½«»áÏÔʾÔÚ×ó²à±ßÀ¸¡£

²¿ÊðÒ»¸öGitlab CI ÔËÐÐÒýÇæ

ÏÖÔÚÄã¿ÉÒÔͨ¹ýTutumÀ´²¿ÊðÒ»¸öGitlab CIÔËÐÐÒýÇæ¡£È»¶ø£¬ÎÒÃÇÐèÒªÒ»ÖÖÌØÊâÀàÐ͵ijÖÐøÔËÐÐÒýÇæ¡ª¡ªÐèÒªÄܹ»ÔÚÕâ¸öÈÝÆ÷ÖÐÔËÐÐDocker²¢ÇÒÄܹ»¹¹½¨ÎÒÃÇ×Ô¼ºµÄDocker¾µÏñ¡£

Äã¿ÉÄÜÏ룬ÕâÔõô¿ÉÄÜÄØ£¿¼ÙÈçÎÒÃÇʹÓÃTutumÔËÐÐGitlab CI ÒýÇæ£¬ËüÖ»ÄÜÔËÐÐÔÚÈÝÆ÷Àï¡£ÄÇôÎÊÌâÀ´ÁË£¬ÈçºÎÔÚDockerÈÝÆ÷ÀïÔËÐÐDockerÄØ£¿

ÆäʵÕâÍêÈ«¿ÉÒÔ×öµ½¡£ÊÂʵÉÏ£¬ÎÒÃÇ¿ÉÒÔÔËÐÐÔÚÄãÄÜÏëÏ󵽵ĸüÉî²ãDockerÖС£ÎÒÃǵÄDockerÈÝÆ÷¼Ü¹¹ÈçÏÂͼËùʾ£º

ÕýÈçÄãËù¿´µ½µÄ£¬ÔÚÎÒÃǵĽڵãµÄDockerÈÝÆ÷ÀïTutumÔËÐÐGitLab CIÒýÇæ¡£´ËÍ⣬¸ÃGitLab CIÒýÇæÊµ¼ÊÉÏʹÓÃDocker¹¹½¨¾µÏñ²¢ÔËÐвâÊÔ,ÕâÒâζ×ÅÎÒÃÇÓÐÁ½¸öǶÌײã´Î¡£

ͨ¹ýfork GitLab CI Runner£¬ÎÒÒѾ­½¨Á¢ÁËÏàÓ¦¹¦ÄܵķÖÖ§¡£ÕâÑù¾Í¿ÉÒÔÓÐЧµÄ¸ú×ÙÔÚgithubºÍ¹Ù·½Docker×¢²áÖÐÐĵıä¸ü¡£

ÔÚ½¨Á¢ÄãµÄGiLab CI runnerǰ£¬È·±£ÄãÒѾ­´æÔÚÒ»¸öGitLabµÄʵÀý²Ö¿â£¬²¢ÇÒÄܹ»Í¬Ê±ÔËÐÐGitLab CIÒýÇæ¡£ÕýÈçÇ°ÃæÌáµ½µÄ£¬Äã¿ÉÒÔ½¨Á¢×Ô¼ºµÄʵÀý£¬»òÕßÖ±½ÓʹÓÃgitlab¹Ù·½ÌṩµÄÃâ·ÑÍйֿܲâºÍ³ÖÐø²¿Êð·þÎñ¡£

Ò»µ©Äã×¢²áÁËGitlab²Ö¿â¡£ÄãËù×öµÄÖ»ÐèҪͨ¹ýµã»÷Á´½ÓÄãµÄGitlab CI Õ˺š£ÔÚÄã¹ØÁªÁËGitlab CIÕ˺ÅÖ®ºó£¬Ä㽫»áͨ¹ýGitlabµÄÒDZíÅÌ¿´µ½ÄãµÄGitlab²Ö¿âÁÐ±í£¬²¢ÇÒͨ¹ýµã»÷"Add project to CI" °´Å¥À´Ìí¼ÓÄãµÄÏîÄ¿µ½Gitlab CI ÒýÇæÖС£µã»÷Íê±Ïºó£¬Äã¾Í»áGitlabµÄÒDZíÅÌÉÏ¿´µ½ÄãÐÂÌí¼ÓµÄÏîÄ¿ÐÅÏ¢ÁË¡£ÈçÏÂͼËùʾ£º

Èç¹ûÄãÇá´ÁGitlabµÄÓû§½çÃæ£¬Ä㽫»á×¢Òâµ½Ò»¸ö²Ëµ¥±êÌâΪ¡°Runners¡±¡£ÔÚÕâ¸öÒ³ÃæÓÐÒ»¸ö×¢²á±ê¼Ç£¬Í¬Ê±»¹ÓÐÈçºÎ´´½¨Ò»¸öеġ°Runner¡±µÄ¹¦ÄÜ˵Ã÷¡£ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒ½«»áʹÓÃTutum²¿ÊðÎÒÃǵÄGitlab CI ¾µÏñ¡£È·¶¨ÄãÒѾ­¸´ÖÆÁË×¢²á±ê¼ÇºÍGitlab CIµÄurlµØÖ·¡ª¡ªÒ»»áÄ㽫»áÓõ½ËûÃÇ¡£

ÔÚÄãµÄTutum½çÃæÉÏ£¬´´½¨Ò»¸öеķþÎñ¡£ÔÚTutumÖзþÎñµÄ¸ÅÄîÊÇÒ»¸öDockerÈÝÆ÷×飬ËûÃÇʹÓÃÏàͬµÄÈí¼þ²¢ÔËÐÐ×ÅÏàͬÅäÖá£

ÿ¸ö·þÎñ¿ÉÒÔÓÐÁã¸ö»òÕß¶à¸öÈÝÆ÷ÔÚͬһʱ¼äÔËÐУ¬²¢ÇÒTutum½«»á¹ÜÀíÄãËùÓнڵãµÄЭµ÷ºÍËõ·Å¹¤×÷¡£

ÔÚÆô¶¯Ïòµ¼µÄµÚÒ»¸ö½çÃæ£¬Ä㽫»á¿´µ½¼¸¸ö±êÇ©£¬ÈÃÄãÑ¡Ôñ²»Í¬À´Ô´µÄDocker¾µÏñÔ´¡£TutumÓµÓÐÒ»¸öÄÚÖõġ¢Ë½ÓеÄ×¢²áÖÐÐÄ£¬Í¨¹ýËÑË÷ÆäËû×¢²áÖÐÐÄͬʱ֧³ÖһЩ¾ßÓÐÌØ¶¨¹¦ÄܵľµÏñ£¬µ±È»ÕâÀïÒ²°üÀ¨DockerµÄ¹Ù·½¾µÏñ¡£Çл»µ½¡°¹«¹²¾µÏñ¡±Ñ¡Ï£¬ËÑË÷¡°wizardapps/dind-gitlab-ci-runner¡±¾µÏñ£¬Õâ¾ÍÊÇÎÒÇ°ÃæÃèÊöµÄÔÚgithubÉÏforkµÄGitLab CI ÒýÇæÔ´Âë²Ö¿âÖÐÎÒ×Ô¼º½¨Á¢µÄ·ÖÖ§¡£

ÄãÒ»µ©È·¶¨Ñ¡ÔñÁ˾µÏñ£¬Ä㽫»á¿´µ½Ò»¸ö½çÃæÉÏÃæÄã¶ÔÁ½¸öÈÝÆ÷Ö®¼äµ÷¶ÈµÄ¹¦ÄÜÑ¡ÏîºÍһЩ»ù±¾ÅäÖ㬶ÔÓÚ²¿Êð²ßÂÔ£¬ËäȻĬÈϵÄÉèÖÃÒ²¿ÉÒÔÔËÐгÖÐø¼¯³É£¬µ«ÊÇÎÒ½¨Ò黹ÊÇͨ¶ÁÏÂTutum¹Ù·½µÄ˵Ã÷Îĵµ.³ý·ÇÄãÏë×öƽÐй¹½¨£¬·ñÔò½«ÈÝÆ÷ÊýÁ¿ÉèÖÃΪ1¡£Èç¹ûÄãÏÈǰÒѾ­¶Ô²¿ÊðÔÚTutumµÄ½Úµã´òÁ˶ÔÓ¦µÄ±êÇ©£¬ÇëÈ·±£ÔÚ¡°Delpoy Tags¡±ÊäÈë¿òÊäÈëÁËÕýÈ·µÄ±êÇ©Ãû³Æ¡£´Ó±¾ÖÊÉϽ²£¬Tutum»áŬÁ¦Ñ°ÕÒËùÓÐÂú×ãÄãÒªÇó¡°Delpoy Tags¡±ÖÐÉùÃ÷µÄ±êÇ©£¬²¢ÇÒ²¿ÊðËûÃǵ½Ò»¸ö½Úµã¡£

ÏÂͼ˵Ã÷µ±ÄãµÚÒ»´Î±ØÐëÒª¸Ä¶¯µÄÒ»¸öÖØÒªµÄÅäÖÃÐÅÏ¢£¬ÕâÊÇÔÚ¡°Advanced Options¡±²¿·ÖµÄ¡°Privileged Mode¡±Ñ¡ÏDockerÐèҪѡÖÐÕâ¸öÑ¡ÏÕâÑù±£Ö¤Tutum¿ÉÒÔºÜÈÝÒ׵ĻñµÃ¸ÃÐÅÏ¢¡£

ÔÚÅäÖúÃ˽ÓÐģʽºó£¬Ä㽫»á¿´µ½ÏÂÒ»¸öÆÁÄ»-Óйػ·¾³±äÁ¿ÅäÖÃÐÅÏ¢¡£

ÏñDockerÃüÁîÐÐÒ»Ñù£¬TutumÔÊÐíÄãÉùÃ÷Ò»¸ö»·¾³±äÁ¿Ê¹Ö®¿ÉÒÔÔÚÄãµÄDockerÈÝÆ÷ÀïʹÓá£

²»½öÈç´Ë£¬ÔÚTutumÖУ¬Ã¿Ò»¸ö²¿ÊðµÄÈÝÆ÷¶¼¿ÉÒÔʹÓÃÕâ¸ö»·¾³±äÁ¿¡£¾¡¹ÜÎÒÃDz»»áÔÙGitlab CI ÒýÇæÉÏʹÓÃlink¹¦ÄÜ£¬ÎÒÃÇʹÓõÄÊÇTutumÌṩµÄ¶¯Ì¬link,ÈÝÆ÷ÒÀÈ»ÔÊÐíʹÓÃÆäËûÈÝÆ÷ÖеĻ·¾³±äÁ¿¡£

ÏÂÃæÊÇÈýÖÖÐèÒªÉèÖõÄÖØÒªµÄ»·¾³±äÁ¿£º

1.REGISTRATION_TOKEN£º ×¢²áÐÅÏ¢¾ÍÊÇ֮ǰÎÒÃÇÔÚGilab CI Öп½±´µÄ¡°Runner¡±¡£

2.CI_SERVER_URL£ºÔÚGitlab CIÒ³ÃæÉÏ֮ǰÌṩ¸øÎÒÃǵÄurlµØÖ·£¬Èç¹ûÄãʹÓõÄÊǹٷ½ÌṩµÄgitlab CI·þÎñ£¬Ö±½ÓÌîд¡°https://ci.gitlab.com/¡±¡£

3.GITLAB_SERVER_FQDN£ºÕâÀïÉùÃ÷µÄÊÇgitlab µÄÓòÃû£¬ÕâÊÇÓÃÀ´Ö´ÐÐÒ»¸össh-keyscan¡£Èç¹ûÄãÓõÄÊǹٷ½µÄÍйܷþÎñ£¬ÇëÌîд "ci.gitlab.com"¡£

ÔÚÅäÖÃÍêÕâЩ±äÁ¿Ö®ºó£¬ÖÕÓÚ¿ÉÒÔ¡°´´½¨²¢²¿Êð¡±ÎÒÃǵķþÎñÁË¡£

Ò»µ©ÄãµÄÈÝÆ÷Æô¶¯Íê±Ï, Äã¿ÉÒÔ·µ»ØGitLab CIµÄ¡°Runners¡±Ò³Ãæ²¢ÇÒÄã¿´µ½Ò»¸öеÄÈë¿Ú¡£ÏÖÔÚÄã¿ÉÒÔ×ÅÊÖ×¼±¸½¨Á¢ GitLab CI ÈÎÎñ°É¡£

´´½¨Ò»¸öGitLab CI ÈÎÎñ

ÖÕÓÚµ½×îºóÒ»²½ÁË£¬ÎÒÃÇÔÚGitlab CI ÉÏÌí¼ÓÒ»¸öʵ¼ÊµÄ½Å±¾Ä¿µÄÊǽ¨Á¢Ò»¸ö ³ÖÐø¼¯³É/³ÖÐø²¿ÊðµÄ¹¤×÷Á÷¡£ÏÖÔÚ£¬Õ⽫ȡ¾öÓÚÄãµÄʵ¼ÊÏîÄ¿µÄÖÖÀ࣬µ«´óÌå·½ÏòÓ¦¸ÃÊÇÏàͬµÄ£¬Äã»áʹÓÃDocker¾µÏñÀ´¹¹½¨DockerÈÝÆ÷£¬È»ºóÉÏ´«µ½ÄãµÄ¾µÏñ¿â¡£ÔÚÕâÖÖÇé¿öÏ£¬½«»áÉÏ´«µ½TutumÌṩµÄ˽ÓоµÏñ¿â¡£

ÔÚ¡°¹¤×÷¡±Ñ¡ÏÖУ¬Gitlab CI¹¤×÷¿ÉÒÔ½øÐÐÐ޸ġ£ÔÚÕâ¸ö²¿·Ö£¬ÓÐÁ½¸ö²»Í¬µÄ×ÓÑ¡Ïî-¡°test¡±ºÍ¡°deploy¡±¡£ÕýÈçËûÃÇÃû×ÖËù°µÊ¾µÄ£¬²âÊԽű¾Í¨³£ÓÃÀ´ÔËÐе¥ÔªºÍ¼¯³É²âÊÔ¡£²¿Êð½Å±¾Ö»ÔËÐÐÒ»µ©²âÊÔÍê³ÉºóµÄÌØ¶¨·ÖÖ§¡£ÕâÑù¾Í¿ÉÒÔÔÊÐíÄãÔÚÿ´ÎÌá½»(commit)ºóÔËÐÐÄãµÄ²âÊԽű¾£¬Óë´Ëͬʱ²¿Êð½Å±¾µ±ÇÒ½öµ±ËùÓвâÊÔÈ«²¿Í¨¹ýµÄʱºò²¿ÊðÔ¶³Ìmaster·ÖÖ§¡£

ÏÂÃæÊǽű¾ÊµÀý£º

docker login-u[USERNAME]-e[EMAIL]-p="[PASSWORD]"tutum.co
Build the Docker image and tag it for Tutum docker build-twizardapps/app.
docker tag-fwizardapps/app tutum.co/wizardapps/app:latest

ÉÏÃæµÄ²âÊԽű¾²¢Ã»ÓÐʵ¼ÊÔËÐÐÈκβâÊÔ£¬µ«ÊÇËûÈ·ÄÜΪÎÒÃǵÄÓ¦ÓóÌÐò¹¹½¨Docker¾µÏñ²¢´òÉ϶ÔÓ¦µÄ±êÇ©¡£Èç¹ûÄãÔÚ³õʼ»¯½×¶ÎʹÓÃ×Ô¼ºµÄ½Å±¾£¬ÇëÈ·±£ÄãµÄÓû§¡¢ÓÊÏä¡¢ÃÜÂëºÍTutumÉϵÄ×¢²áÐÅÏ¢±¨Ö½Ò»Ö¡£ÒòΪTutumÌṩµÄÊÇÒ»¸ö˽ÓÐDocker×¢²áÖÐÐÄ£¬È·±£ÄãµÄ²âÊԽű¾ÄÜͨ¹ýÏàÓ¦µÄУÑé¢Ý¡£

È»ºó£¬ÎÒÃÇ»¹¿ÉÒÔ´´½¨Ò»¸ö²¿Êð½Å±¾£¬Êµ¼ÊÉÏÊÇÍÆËÍÎÒÃǵľµÏñµ½TutumµÄ×¢²áÖÐÐÄ£¬²¢¿ªÊ¼¹¹½¨¡£

docker push tutum.co/wizardapps/app

×Ô¶¯²¿Êð

µ½ÁËÕâÒ»²½£¬ÄãµÄϵͳӦ¸ÃÒѾ­¹¹½¨³É¹¦²¢ÔËÐУ¬Ð´úÂëÓ¦¸Ã¿ÉÒÔ³ÖÐø¼¯³É²¢ÉÏ´«µ½TutumµÄ×¢²áÖÐÐÄ¡£Ê£ÏµĹ¤×÷¾ÍÊÇÔÚTutumÉÏ´´½¨Äã×Ô¼ºµÄ·þÎñ£¬È·±£ÖØÆôºó»¹¿ÉÒÔ¼ÌÐøÊ¹Óá£

ÕâºÍÎÒÃÇ´´½¨Gitlab CI ·þÎñÀàËÆ£¬Ëù²»Í¬µÄÊÇÎÒÃÇÈ÷þÎñ¡°Ë½Óл¯¡±£¬ÎÒÃÇÖ»ÐèÒª´ò¿ª¡°Auto Redeploy¡±¿ª¹Ø¼´¿É¡£ÅäÖÃËùÓеķþÎñ¶Ë¿Ú£¬»·¾³±äÁ¿£¬Á´½ÓºÍ¾í±ê£¬È»ºóµã»÷һϲ¿Êð¼´¿É¡£

¹§Ï²Ä㣬ÄãÏÖÔÚÒѾ­ÓµÓÐÁËÖ»ÓÐÔÚ¾­¹ý²âÊԺ󣬿ÉÒÔ¿ìËÙ½øÐгÖÐø²¿Êð£¬×Ô¶¯»¯²¿ÊðµÄDockerÓ¦ÓóÌÐò¡£

ÆäËû×ÊÔ´

GitLab CI Multi-Runner µØÖ·£º https://github.com/ayufan/gitlab-ci-multi-runner

ÎÒÃÇͨ¹ýÔÚTutumÀィÁ¢Ã¿¸öÏîÄ¿É϶¼ÐèÒªµÄ³ÖÐø¼¯³É ¡°·þÎñ¡±£¬¿ÉÒԺܿìÉÏÊÖ¡£×÷ΪһÖÖÌæ´ú·½°¸£¬Äã¿ÉÒÔ³¢ÊÔʹÓÃGitLab CI Multi-Runner£¬Õâ¸öÏîĿͨ¹ýÒ»¸öÅäÖÃÎļþÔÊÐí¶à¸öÏîĿͬʱ½øÐй¹½¨¡£

¢Ù. ÎÒÓÐһЩºÜ¿áµÄ¶«Î÷ºÍ´ó¼Ò·ÖÏí£¬Õâ¾ÍÊÇThreeBar¡ª¡ªÒ»¸öÔ¶Ô¶³¬³öÄãÏëÏóµÄ¹¤¾ß¡£Ò»µ©Äã×öºÃ×¼±¸¼ÓÈ룬Ä㽫»á·¢ÏÖDocker³ÖÐø-²¿Êð-Ó¦ÓõÄÇ¿´ó¹¦ÄÜ¡£

¢Ú. Heroku ÔËӪģʽ£¬ÄúÖ»ÐèÒª°´Ð¡Ê±Ö§¸¶Ê¹Ó÷ѡ£Ã¿Ò»¸ö¡°ÐéÄâ»ú¡±ÔËÐÐÄãµÄ´úÂë±»³ÆÖ®Îª¡°Dyno¡±£¬Äã¿ÉÒÔ½ö½öͨ¹ýÔËÐÐÒ»¸öÃüÁî¾Í¿ÉÒÔ×öµ½Ò»¼ü²¿Êð£¬ÀýÈçweb·þÎñÆ÷»òÕ߯äËûÇëÇó¶ÓÁзþÎñ¡£Ä㽫»áÿ¸öÔ»ñµÃ750СʱµÄ¡°Dyno¡±Ãâ·ÑʹÓÃȨ¡£ÕâÒâζ×ÅÈç¹ûÄãÔ¸ÒâµÄ»°¿ÉÒÔÔÚHerokuÉÏÔËÐÐÒ»¸öÃâ·ÑµÄweb·þÎñÆ÷¡£

¢Û. ÎÒ¸öÈËʹÓÃÁËÒÔÏÂËùÓеķþÎñÆ÷ÌṩÉÌ£¬ÎÒҲͨ¹ý²©¿ÍÁ´½Óµã»÷»ñµÃÁËһЩÊÕÈë¡£µ«ÊÇ£¬ºÜ¿Éϧ£¬ÈκÎÒ»¸ö·þÎñÆ÷ÌṩÉ̶¼²»»áÔÊÐíÄãÔÚ´´½¨Äã×Ô¼ºDocker·þÎñ²¢ÔËÐÐÔÚLinuxʵÀýÉÏ¡£

¢Ü. RunAboveµÄɳÏäÊÇÒ»¸öΰ´óµÄʵÑ飬ÒòΪÔÚËüÉÏÃæÓдóÁ¿µÄRAM£¬SSD´æ´¢£¬²¢ÇÒ»¨·Ñ¼«µÍ¡ª¡ªÃ¿ÔÂÖ»ÓÐ3ÃÀ½ðÔÚÒ»¸ö2GÄÚ´æµÄ·þÎñÆ÷ÉÏ¡£¾¡¹ÜÈç´Ë£¬ÔÚÄǸöʱºòËûÃDz»±»SALËù½ÓÊÜ£¬Òò´ËÄãÖ»ÄÜÑ¡ÔñÆäËûµÄ·þÎñÌṩÉÌ¡£

¢Ý. ´Ëʱ´Ë¿Ì£¬Äã±ØÐë°ÑÄãµÄTutumµÄÕ˺źÍÃÜÂëÖ±½ÓÈÓµ½½Å±¾ÖС£ºÜ²»ÐÒµÄÊÇ£¬utum²»ÌṩÕâÑùµÄµ¥¶ÀÃÜÂë×¢²á±íAPI£¬ËùÒÔÕâ¸ö·½°¸Ò²Òò´ËÁôÏÂÒ»¸öDZÔڵݲȫ©¶´¡£

   
3867 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ