d o r a : 2 0 R U N y u m i n s t a l l - y m o n g o d b - s e r v e r & & y u m c l e a n a l l R U N m k d i r - p / v a r / l i b / m o n g o d b & & \ t o u c h / v a r / l i b / m o n g o d b / . k e e p & & \ c h o w n - R m o n g o d b : m o n g o d b / v a r / l i b / m o n g o d b A D D m o n g o d b . c o n f / e t c / m o n g o d b . c o n f V O L U M E [ " / d a t a / d b " ] E X P O S E 2 7 0 1 7 U S E R m o n g o d b W O R K D I R / v a r / l i b / m o n g o d b C M D m o n g o d
TO INTEGRATE CODE INTO A SHARED REPOSITORY SEVERAL TIMES A DAY. EACH CHECK-IN IS THEN VERIFIED BY AN AUTOMATED BUILD, ALLOWING TEAMS TO DETECT PROBLEMS EARLY. thoughtworks.com/continuous-integration
different language versions. I.e. PHP 5.3, 5.4, 5.5 JenkinsCI: using multi-configuration project (MatrixReloaded plugin). Builds can be executed on slave servers.
/ r u n t e s t s . s h starts all required services (nginx, mysql, selenium, redis, etc) Container stops when tests are finished No supervisors: we can execute only one process per run
e c h o " S t a r t i n g S e r v i c e s . . . . " s e r v i c e e l a s t i c s e a r c h s t a r t > / d e v / n u l l 2 > & 1 s e r v i c e n g i n x s t a r t > / d e v / n u l l 2 > & 1 s e r v i c e p h p 5 - f p m s t a r t > / d e v / n u l l 2 > & 1 s e r v i c e m y s q l s t a r t > / d e v / n u l l 2 > & 1 s e r v i c e m e m c a c h e d s t a r t > / d e v / n u l l 2 > & 1 p h a n t o m j s - - w e b d r i v e r = 4 4 4 4 > / d e v / n u l l 2 > & 1 & m a i l c a t c h e r - f > / d e v / n u l l 2 > & 1 & e c h o " R u n n i n g t e s t s " c d / p r o j e c t / $ 1 # s w i t c h t o a p p l i c a t i o n c o d e c e p t r u n $ 2 # r u n t e s t s f r o m s p e c i f i c s u i t e