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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚNginx¡¢Node.jsºÍRedisµÄDocker¹¤×÷Á÷
 
×÷ÕßoMingZi12345678  À´Ô´;Docker ·¢²¼ÓÚ 2016-8-19
  2846  次浏览      27
 

ÔÚÎÒµÄǰһƪÎÄÕÂÖУ¬ÎÒÒѾ­½éÉÜÁ˹ØÓÚÈÝÆ÷ºÍDockerÊÇÈçºÎÓ°ÏìPaaS¡¢Î¢·þÎñºÍÔÆ¼ÆËãµÄ¡£Èç¹ûÄã¸Õ¸Õ½Ó´¥DockerºÍÈÝÆ÷£¬ÎÒÇ¿ÁÒ½¨ÒéÄãÏȶÁÒ»¶ÁÎÒ֮ǰµÄÎÄÕ¡£×÷Ϊ֮ǰÎÄÕµÄÒ»¸öÑÓÐø£¬ÔÚ±¾ÎÄÖÐÎÒÈԻὲÊöһЩDocker¹¤×÷Á÷ʵÀýµÄÄÚÈÝ¡£Äã¿ÉÒÔÔÚGitHubÉÏÕÒµ½ËùÓеĴúÂëʾÀý¡£

ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÓÐÒ»¸ö·Ç³£¼òµ¥µÄNode.jsÓ¦Óã¬ËüʵÏÖÁËÒ»¸öµÝÔöµÄ¼ÆÊýÆ÷²¢ÇÒ½«Êý¾Ý´æ´¢ÔÚRedisÉÏ¡£ÎªÁ˱£Ö¤Ó¦Óõĸ߿ÉÀ©Õ¹µÄÄÜÁ¦£¬ÎÒ»á¶ÀÁ¢ÔËÐÐRedisºÍNodeÓ¦Óá£

ÈÃÎÒÃÇÏÈ̸̸ÈÝÆ÷£¬ÌرðÊÇDockerÈÝÆ÷¡£ÎÒÃÇҪΪÿ¸ö·þÎñ/½ø³Ì·ÖÅäÒ»¸öÈÝÆ÷£¡

1¸öRedisÈÝÆ÷

3¸öNodeÈÝÆ÷

1¸öNginxÈÝÆ÷

Òò´Ë£¬ÕûÌå¼Ü¹¹¿´ÉÏÈ¥ÊÇÕâÑùµÄ£º

ÎÒ¿ÉÒÔÓÃDockerÃüÁîÀ´¹¹½¨ÈÝÆ÷£¬µ«ÎªÁ˸ü¼Ó¼òµ¥£¬ÎÒÍÆ¼öʹÓÃDockerfile¡£ÎÒÒ²ÓÃDocker ComposeÈ¥±àÅÅÓ¦ÓÃÁ¬½ÓÈÝÆ÷¡£

Ê×ÏÈ£¬ÎÒÏȽéÉÜÏÂÈçºÎ¶¨ÒåÈÝÆ÷¡£

£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­»ªÀöµÄ·Ö¸îÏߣ­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­

ÐÞ¸ÄÈÕÆÚ£º2015Äê4ÔÂ3ÈÕ

ÓжàÖÖ·½·¨À´ÅäÖÃÒ»¸öDockerfileºÍ¾µÏñ²ã´Î¡£Ò»¸ö·½·¨£¬½«Æô¶¯Ò»¸ö»ùÓÚ²Ù×÷ϵͳµÄ¾µÏñ£¬ÈçUbuntu£¬²¢½¨Á¢×Ô¼ºµÄÓ¦ÓúÍÔÚÕâÖ®ÉϵÄÒÀÀµÏî¡£ÁíÒ»¸ö¿ÉÄÜÊÇ×îÀíÏëµÄ·½·¨ÊÇΪÄãµÄ¾ßÌåʹÓöøÊ¹ÓÃÒ»¸öÔ¤½¨µÄ¾µÏñ¡£Docker Hub RegistryÓÐÐí¶àÓÃÓÚ¹¹½¨Á÷ÐÐÓ¦ÓÃºÍÆäÒÀÀµµÄÔ¤½¨¾µÏñ£¬ÕâЩ¿ÉÒÔÖ±½ÓÓá£

ÎÒ»áÐÞ¸ÄÀý×ÓÀ´ÑÝʾ²»Í¬µÄʹÓÃÇé¿ö¡£ÎÒ½«ÑÝʾΪRedisÈÝÆ÷ʹÓÃÒ»¸öÔ¤½¨¾µÏñ£¬ÎªNginxÈÝÆ÷ʹÓÃÒ»¸öÔ¤½¨µÄ×Ô¶¨ÒåÅäÖõľµÏñºÍÒ»¸ö¹¹½¨ÔÚUbuntu¾µÏñÉϵÄNodeÈÝÆ÷¡£

¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª

Redis ÈÝÆ÷

ÈÃÎÒÃÇʹÓùٷ½µÄRedis¾µÏñ´ÓDocker HubÉϵÄRedisÈÝÆ÷¡£ËüÔ¤´ò°üÁËRedis·þÎñµÄ°²×°£¬ÔËÐÐÔÚĬÈ϶˿Ú6379¡£ËùÒÔÄãֻҪĬÈÏÅäÖÃok¾Í²»ÐèÒªÐÞ¸ÄÈκÎÅäÖã¬Ö±½Ó´´½¨²¢ÔËÐÐRedisÈÝÆ÷¾µÏñ£º

docker run -d --name redis -p 6379:6379 redis

Èç¹ûÄãÏë´Ó»ùÓÚUbuntuµÄ¾µÏñ¹¹½¨Redis¾µÏñ£¬Dockerfile»áÊÇÕâÑù£º

# Set the base image to Ubuntu FROM ubuntu # File Author 
                          / Maintainer MAINTAINER Anand Mani Sankar # Update the 
                          repository and install Redis Server RUN apt-get update 
                          && apt-get install -y redis-server # Expose 
                          Redis port 6379 EXPOSE 6379 # Run Redis Server ENTRYPOINT 
                          [¡°/usr/bin/redis-server"]

Node ÈÝÆ÷

ÈÃÎÒÃÇÀ´¿´¿´NodeÓ¦Óá£ÎÒ²»Ïë×öÌ«¶àµÄ½âÊÍ¡£ÎÒ×öµÄÊÇÔÚÿ¸öÇëÇóʹÓÃRedisµÄINCRµÄµÝÔöµÄÒ»¸öÊÓͼ¼ÆÊýÆ÷¡£ÎÒʹÓÃnode-redisÄ£¿éÁ¬Í¬hiredis´Ó¶ø»ñµÃ¸üºÃµÄÐÔÄÜ¡££¨Yeah£¬³¬¸ßÐÔÄܵÄÊÓͼ¼ÆÊýÆ÷²»»áÊÜË𣡣©

              var express = require('express'), http = require('http'), 
     redis = require('redis'); var app = express(); console.log(process.env.REDIS_PORT_6379_TCP_ADDR 
         + ':' + process.env.REDIS_PORT_6379_TCP_PORT); // APPROACH 
            1: Using environment variables created by Docker // 
              var client = redis.createClient( // process.env.REDIS_PORT_6379_TCP_PORT, 
      // process.env.REDIS_PORT_6379_TCP_ADDR // ); // APPROACH 
        2: Using host entries created by Docker in /etc/hosts 
          (RECOMMENDED) var client = redis.createClient('6379', 
            'redis'); app.get('/', function(req, res, next) { client.incr('counter', 
             function(err, counter) { if(err) return next(err); res.send('This 
          page has been viewed ' + counter + ' times!'); }); }); 
              http.createServer(app).listen(process.env.PORT || 8080, 
             function() { console.log('Listening on port ' + (process.env.PORT 
            || 8080)); });

Äã¿ÉÄÜÒѾ­×¢Òâµ½ÓÃÓÚµØÖ·ºÍ¶Ë¿ÚµÄRedis·þÎñµÄ»·¾³±äÁ¿£¬ÕâЩ»·¾³±äÁ¿ÊÇÔÚÈÝÆ÷Á¬½ÓʱÓÉDocker¶¨Ò壬ÒÔ·½±ãÈÝÆ÷¼äͨѶ¡£

£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­»ªÀöµÄ·Ö¸îÏߣ­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­

ÐÞ¸ÄÈÕÆÚ£º2015Äê3ÔÂ31ÈÕ

Docker£¬³ýÁË´´½¨»·¾³±äÁ¿£¬»¹»á¸üР/etc/hosts ÎļþÖеÄÖ÷»ú¼Ç¼¡£ÊÂʵÉÏ£¬Docker¹Ù·½ÍƼöʹÓÃ/etc/hosts ÎļþÀ´Ìæ´ú»·¾³±äÁ¿£¬ÒòΪÈç¹ûÔ´ÈÝÆ÷ÖØÆôµÄʱºò£¬»·¾³±äÁ¿²¢²»»á×Ô¶¯¸üС£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª

½ÓÏÂÀ´½«ÎÒÃÇʹÓÃÁíÒ»ÖÖ·½·¨À´¹¹½¨NodeÈÝÆ÷¡£ÎÒÃÇ´ÓÒ»¸ö»ù±¾µÄUbuntu¾µÏñ¿ªÊ¼£¬²¢Öð²½ÔÚÉÏÃæÌí¼ÓNodeºÍËüµÄÒÀÀµÏî¡£

Node Dockerfile:

# Set the base image to Ubuntu FROM 
                          ubuntu # File Author / Maintainer MAINTAINER Anand Mani 
                          Sankar # Update the repository RUN apt-get update # 
                          Install Node.js and other dependencies RUN apt-get -y 
                          install curl RUN curl -sL https://deb.nodesource.com/setup 
                          | sudo bash - RUN apt-get -y install python build-essential 
                          nodejs # Install nodemon RUN npm install -g nodemon 
                          # Bundle app source COPY . /src # Install app dependencies 
                          RUN cd /src; npm install # Expose port EXPOSE 8080 # 
                          Run app using nodemon CMD ["nodemon", ¡°/src/index.js"]

ÉÏÃæµÄDockerfile½âÊÍÈçÏ£º

´ÓDocker HubÀ­È¡Ubuntu»ù´¡¾µÏñ

ʹÓÃapt-get°²×°Node.jsÒÔ¼°ÒÀÀµ

ʹÓÃnpm°²×°nodemon

´ÓhostĿ¼¸´ÖÆÓ¦ÓÃÔ´Âëµ½ÈÝÆ÷ÄÚ src

ÔËÐÐ npm install °²×°NodeÓ¦ÓÃÒÀÀµ

¶Ë¿Ú8080´ÓÈÝÆ÷Å׳ö£¬Ê¹ÓÃnodemonÔËÐÐÓ¦ÓÃ

ʹÓÃDockerfile¹¹½¨Ò»¸öDocker¾µÏñ£º

docker build -t msanand/node .

´Ó×Ô¶¨Òå¾µÏñÖд´½¨Ò»¸öNodeÈÝÆ÷²¢Á¬½ÓRedisÈÝÆ÷£º

docker run -d --name node -p 8080 --link redis:redis 
                          msanand/node

ÓÉÓÚÎҼƻ®ÔÚ3¸önode·þÎñÆ÷Ö®¼ä×ö¸ºÔؾùºâ£¬Îһᴴ½¨3¸öÈÝÆ÷ £­ node1¡¢node2ºÍnode3¡£

Çë×¢Ò⣬RedisÈÝÆ÷½«»áÁ¬½Óµ½NodeÈÝÆ÷£¬ËùÒÔNodeÈÝÆ÷¿ÉÒÔͨ¹ýDocker´´½¨µÄÖ÷»ú¼Ç¼»òÕß»·¾³±äÁ¿¶¨ÒåµÄIPµØÖ·ºÍ¶Ë¿ÚÀ´ÓëRedisÈÝÆ÷½»»¥¡£

ÓÐÁËÕâÒ»µã£¬ÎÒÓÐÒ»¸öNodeÓ¦ÓÃÏÔʾһ¸öÊÓͼ¼ÆÊýÆ÷²¢½«Êý¾Ý±£´æÔÚRedis¡£ÈÃÎÒÃÇÀ´¿´¿´ÈçºÎʹÓÃNginxÀ´×ö¸ºÔؾùºâ¡£

NGINXÈÝÆ÷

NginxµÄºËÐÄÊÇËüµÄÅäÖãºÒ»¸öconfÎļþ¡£ÎÒʹÓÃÒ»¸ö¼òµ¥µÄNginxÅäÖÃÎļþ¶¨Òå3¸öupstream server£º

worker_processes 4; events { worker_connections 1024; 
                          } http { upstream node-app { least_conn; server node1:8080 
                          weight=10 max_fails=3 fail_timeout=30s; server node2:8080 
                          weight=10 max_fails=3 fail_timeout=30s; server node3:8080 
                          weight=10 max_fails=3 fail_timeout=30s; } server { listen 
                          80; location / { proxy_pass http://node-app; proxy_http_version 
                          1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header 
                          Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass 
                          $http_upgrade; } } }

ÎÒÒѾ­×¢²áÒ»¸ö node-app upstream server£¬Ëü»á¸ºÔؾùºâ3¸ö·þÎñ£ºnode1¡¢node2¡¢node3¡£ÎÒ»¹Í¨¹ýÒ»¸öÈ«µÈ¼ÓȨleast_conn ¸ºÔØÆ½ºâ²ßÂÔÖ¸¶¨ÁËÿ¸ö·þÎñÆ÷ÉϵĻÁ¬½ÓÊýµÄ¸ºÔؾùºâ¡£»òÕߣ¬Äã¿ÉÒÔʹÓÃÒ»¸ö»ùÓÚ¸ºÔؾùºâ·½·¨µÄÂÞ±öÑ­»·£¨ round robin£©»òIP¹þÏ£»ò¼ü¹þÏ£¡£Nginx¼àÌý80¶Ë¿Ú£¬Ëü»ùÓÚ¸ºÔؾùºâ²ßÂÔ´úÀíÇëÇóµ½ÉÏÓηþÎñÆ÷ node-app¡£Èç¹ûÒªÁ˽â¸ü¶àµÄNginxµÄÅäÖÃÎÒ»áÁíÍâÌÖÂÛ¡£

ΪÁ˹¹½¨NginxÈÝÆ÷£¬ÎҼƻ®´ÓDocker HubÉÏʹÓÃÕýʽµÄNignx¾µÏñ¡£ÎÒ½«Ê¹ÓÃÒ»¸öDockerfileÒÔ¼°ÎÒ×Ô¶¨ÒåµÄNginx confÎļþÅäÖÃNignx¡£

¸ÃDockerfileÊÇ×îСµÄ£­Ê¹ÓÃNginx¾µÏñºÍ¸±±¾×Ô¶¨ÒåNginxµÄÅäÖãº

# Set nginx base image FROM nginx # File Author / Maintainer 
                          MAINTAINER Anand Mani Sankar # Copy custom configuration 
                          file from the current directory COPY nginx.conf /etc/nginx/nginx.conf

¹¹½¨Docker¾µÏñ£º

docker build -t msanand/nginx .

´Ó¾µÏñÖд´½¨Ò»¸öNginxÈÝÆ÷£¬²¢Á¬½Óµ½NodeÈÝÆ÷£º

docker run -d --name nginx -p 80:80 --link node:node msanand/nginx

×îºó£¬ÎÒÃÇÓиöNginx·þÎñÆ÷¸ºÔؾùºâ3¸öNode·þÎñÆ÷¡£»Ø¹ýÀ´Ì¸Node·þÎñÆ÷£¬ËûÃÇÿһ¸öÔËÐÐÔÚ×Ô¼ºµÄÈÝÆ÷ÖУ¡

Èç¹ûÎÒÃÇÒª´´½¨Ò»¸ö»ù±¾µÄUbuntu¾µÏñ¶¨ÖÆNginxµÄ¾µÏñ£¬Dockerfile»áÊÇÕâ¸öÑù×Ó£º

# Set the base image to Ubuntu FROM ubuntu # File Author 
                          / Maintainer MAINTAINER Anand Mani Sankar # Install 
                          Nginx # Add application repository URL to the default 
                          sources # RUN echo "deb http://archive.ubuntu.com/ubuntu/ 
                          raring main universe" >> /etc/apt/sources.list 
                          # Update the repository RUN apt-get update # Install 
                          necessary tools RUN apt-get install -y nano wget dialog 
                          net-tools # Download and Install Nginx RUN apt-get install 
                          -y nginx # Remove the default Nginx configuration file 
                          RUN rm -v /etc/nginx/nginx.conf # Copy a configuration 
                          file from the current directory ADD nginx.conf /etc/nginx/ 
                          # Append "daemon off;" to the configuration 
                          file RUN echo "daemon off;" >> /etc/nginx/nginx.conf 
                          # Expose ports EXPOSE 80 # Set the default command to 
                          execute when creating a new container CMD service nginx 
                          start

Dockerfile£¨ daemon off£©ÅäÖÃÁËNginx²»ÒÔÊØ»¤½ø³ÌÔËÐУ¬ÕâÒ²ÊDZØÐëµÄ£¬ÒòΪDockerÈÝÆ÷±¾Éí¾ÍÊÇÎÞ״̬µÄ£¬Ö»Óе±ËûÃÇËù³ÐÔØµÄ½ø³ÌÔËÐеÄʱºò£¬ÈÝÆ÷²ÅÓдæÔÚµÄÒâÒå¡£ËùÒÔ°ÑNginxµ±³Éºǫ́½ø³ÌÔËÐиù±¾²»¿ÉÄÜ¡£Ïà·´£¬°ÑNginx×÷Ϊһ¸ö·þÎñÔËÐпÉÒÔÈ·±£ÈÝÆ÷µÄÕý³£ÔËÐС£¹Ù·½Nginx¾µÏñĬÈÏÅäÖÃÒ²ÊÇÕâÑùµÄ¡£

Docker Compose±àÅÅÓ¦ÓÃ

ComposeÊÇÒ»¸öʹÓÃDocker¶¨ÒåºÍÔËÐи´ÔÓÓ¦ÓõŤ¾ß¡£

ʹÓõ¥¶ÀµÄÃüÁîÀ´¹¹½¨¾µÏñ²¢ÔËÐкÍÁ¬½ÓÈÝÆ÷·Ç³£·±ËöºÍ¸´ÔÓ£¬ÌرðÊÇÄãÒªÔËÐжà¸öÈÝÆ÷µÄʱºò¡£

Docker ComposeÈÃÄãÔÚÒ»¸öÎļþÖж¨Òå¶àÈÝÆ÷Ó¦Óò¢ÓÃÒ»¸öÃüÁîʹӦÓóÌÐòÔËÐÐÆðÀ´¡£

ÎÒÒѾ­¶¨ÒåÒ»¸öDocker Compose YAMLÎļþ£¬ÈçÏ£º

nginx: build: ./nginx links: - node1:node1 - node2:node2 
                          - node3:node3 ports: - "80:80" node1: build: 
                          ./node links: - redis ports: - "8080" volumes: 
                          - node:/src node2: build: ./node links: - redis ports: 
                          - "8080" volumes: - node:/src node3: build: 
                          ./node links: - redis ports: - "8080" volumes: 
                          - node:/src redis: image: redis ports: - ¡°6379"

YAMLÎļþ¶¨Òåÿ¸öÈÝÆ÷µÄÃû×Ö£¬Ö¸ÏòÒ»¸öÓÃÓÚ¹¹½¨µÄDockerfile¡£´ËÍ⣬Ëü°üº¬ËùÊöÈÝÆ÷Á¬½Ó²¢Í¨¹ýËüÃDZ©Â¶¶Ë¿Ú¡£ÓÉÓÚRedisÈÝÆ÷ʹÓÃRedis¹Ù·½¾µÏñ£¬ËùÒÔ²»±Ø¹¹½¨¡£

Ö»ÐèÒªÒ»¸öÃüÁDocker Compose¾Í¿ÉÒÔ¹¹½¨ËùÐè¾µÏñ£¬²¢µ¼³öËùÐè¶Ë¿Ú£¬È»ºóͨ¹ýYAMLÖе͍ÒåÔËÐкÍÁ¬½ÓÈÝÆ÷¡£ËùÓÐÄãÐèÒª×öµÄ¾ÍÊÇÔËÐÐ docker-compose up£¬È»ºóÄãµÄ5¸öÈÝÆ÷Ó¦ÓþͻáÆô¶¯²¢ÔËÐС£ÊäÈëÄãµÄÖ÷»úURLºÍ80¶Ë¿Ú£¬Äã¾Í¿ÉÒÔ¿´µ½ÄãµÄÊÓͼ¼ÆÊýÆ÷£¡

Docker ComposeµÄÒ»¸öÏÔÖøÌØµã¾ÍÊǾßÓж¯Ì¬À©Õ¹ÈÝÆ÷µÄÄÜÁ¦¡£Ê¹ÓÃÃüÁî docker-compose scale node=5¿ÉÒÔÀ©Õ¹ÈÝÆ÷µÄÊýÁ¿À´ÔËÐÐÒ»¸ö·þÎñ¡£Èç¹ûÄãÒÑÓÐÒ»¸ö»ùÓÚ΢·þÎñ¼Ü¹¹µÄDocker£¬Äã¿ÉÒÔÇáËɵØÀ©Õ¹£¬²¢¶¯Ì¬µØ¸ù¾Ý¸ºÔØ·ÖÅä¾ßÌå·þÎñ¡£ÀíÏëÇé¿öÏ£¬ÎÒÄþÔ¸¶¨ÒåÒ»¸önode·þÎñ²¢Ê¹ÓÃDocker ComposeÀ´À©Õ¹Ëü¡£µ«ÎÒ»¹Ã»ÓÐÏë³öÒ»¸ö·½·¨À´¶¯Ì¬µØµ÷ÕûNginxµÄÅäÖá£Èç¹ûÄãÓÐÕâ·½ÃæµÄÏë·¨£¬ÇëÔÚ±¾ÎÄºó»Ø¸´¡£

µ«ÕâÀïÓиöÐèҪעÒâµÄÊÇ£¬Docker Compose»¹²»ÄÜÓÃÓÚÉú²ú»·¾³¡£Îĵµ½¨ÒéʹÓÃÔÚ¿ª·¢»·¾³ÖУ¬¶ø²»ÊÇÉú²ú»·¾³¡£µ«Ò²ÓÐÆäËüµÄÈÝÆ÷±àÅÅÒýÇæÈçÎÒ֮ǰµÄÎÄÕÂÌÖÂÛµÄKubernetes¡£
³ÖÐø¼¯³ÉºÍ²¿Êð

ÎÒÔÚÎÒµÄGitHub²Ö¿âÖÐÅäÖÃÁË2¸öhook·þÎñ£¨ÒëÕß×¢£º×÷ÕßÖ¸µÄÊÇGitHub Webhook£©¡£

CircleCI£­ÓÃÓÚ³ÖÐø¼¯³É£¨ÒÔ¼°²¿Êð£©

Docker Hub -ÓÃÓÚDocker¹¹½¨£¨continuous Docker builds£©

CircleCI YAMLÅäÖÃÎļþ¿´Õâ¶ù£º

machine: services: - docker dependencies: override: 
                          - sudo pip install -U docker-compose test: override: 
                          - docker-compose run -d --no-deps node1 - cd node; mocha

YAMLÅäÖÃÎļþʹÓÃCircleCIÌṩµÄDocker·þÎñ£¬²¢°²×°Docker ComposeÒÀÀµ£¬´´½¨ÁËNodeÈÝÆ÷£¨Î´Á¬½Óµ½RedisÈÝÆ÷£©¡£ËüʹÓÃMocha£¨ÒëÕß×¢£ºMochaÊÇÒ»¸ö»ùÓÚNode.jsºÍä¯ÀÀÆ÷µÄ¼¯ºÏ¸÷ÖÖÌØÐÔµÄJavaScript²âÊÔ¿ò¼Ü£¬²¢ÇÒ¿ÉÒÔÈÃÒì²½²âÊÔÒ²±äµÄ¼òµ¥ºÍÓÐȤ¡£MochaµÄ²âÊÔÊÇÁ¬ÐøµÄ£¬ÔÚÕýÈ·µÄ²âÊÔÌõ¼þÖÐÓöµ½Î´²¶»ñµÄÒ쳣ʱ£¬»á¸ø³öÁé»îÇÒ׼ȷµÄ±¨¸æ¡£MochaÍйÜÔÚGithubÉÏ£©ÔÚNodeÓ¦ÓÃÉÏ´¥·¢²âÊÔ£¬ÕâÈ·±£ÁËGitHubÉÏÿ¸öÌá½»¶¼»á¶ÔÓ¦Ò»¸ö²âÊÔ¡£

ÿ´ÎÌá½»¶¼»á´¥·¢ÎÒµÄDocker Hub Repository½øÐÐÒ»´Î¹¹½¨¡£ÕâÈ·±£ÔÚDocker HubÖÐͨ¹ý³ÖÐø²¿Êðµ½Éú²ú»·¾³µÄ×îÖÕ¾µÏñ×ÜÊÇ¿ÉÓõġ£Éú²ú»·¾³ÄÜÔÚÈκÎʱ¼ä´ÓDocker HubºÍ´ÓÈÝÆ÷ÖбàÅŵÄÓ¦ÓÃÖÐÄÜÀ­µ½×îÖÕ¾µÏñ¡£

ÒÔÉÏÊÇÎÒµÄÒ»¸ö»ùÓÚNginx¡¢Node.jsºÍRedisµÄDockerÁ÷³ÌʵÀý¡£Èç¹ûÄãÓÐÈκν¨ÒéºÍ¸üºÃµÄ·½·¨£¬Çë·¢±íÆÀÂÛ¡£

   
2846 ´Îä¯ÀÀ       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Åàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ