日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
極力推薦:一個(gè)Docker的maven插件

什么是Docker

Docker最近在業(yè)內(nèi)非?;?。如果你現(xiàn)在還不知道Docker是什么,你可要小心嘍。今后,你會(huì)發(fā)現(xiàn)自己正在以某種方式使用它。本文假設(shè)你已經(jīng)有了Docker的基礎(chǔ)。如果你現(xiàn)在對(duì)它還不是很熟悉,我確定你以后還會(huì)來讀這篇文章。

Docker用于集成測(cè)試、復(fù)雜分布式系統(tǒng)演示,非常理想。甚至可以用于運(yùn)行生產(chǎn)環(huán)境下的系統(tǒng)。它是一個(gè)開源的軟件容器。你可以把它想像成一個(gè)非常輕的超級(jí)快的虛擬機(jī)。

例子

得到“Integration testing with Maven and Docker”文章和Docker Java API項(xiàng)目的啟發(fā),我寫了一個(gè)簡(jiǎn)單的可以管理Docker容器maven插件,Docker Maven Plugin。這個(gè)插件將會(huì)根據(jù)你的配置,在構(gòu)建時(shí)啟動(dòng)容器,構(gòu)建結(jié)束時(shí)停止容器并刪除,如果本地找不到鏡像,Docker會(huì)自動(dòng)去中央倉庫下載。

以下與Apache Camel的集成測(cè)試是被忽略的,因?yàn)闇y(cè)試需要一個(gè)Redis實(shí)例才可以執(zhí)行:

 
 
  1. package org.apache.camel.component.redis;
  2.     import org.apache.camel.impl.JndiRegistry;
  3.     import org.junit.Ignore;
  4.     import org.junit.Test;
  5.     import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
  6.     import org.springframework.data.redis.core.RedisTemplate;
  7.     @Ignore
  8.     public class RedisProducerIntegrationTest extends RedisTestSupport {
  9.         private static final JedisConnectionFactory CONNECTION_FACTORY = new JedisConnectionFactory();
  10.         static {
  11.             CONNECTION_FACTORY.afterPropertiesSet();
  12.         }
  13.         @Override
  14.         protected JndiRegistry createRegistry() throws Exception {
  15.             JndiRegistry registry = super.createRegistry();
  16.             redisTemplate = new RedisTemplate();
  17.             redisTemplate.setConnectionFactory(CONNECTION_FACTORY);
  18.             redisTemplate.afterPropertiesSet();
  19.             registry.bind("redisTemplate", redisTemplate);
  20.             return registry;
  21.         }
  22.         @Test
  23.         public void shouldSetAString() throws Exception {
  24.             sendHeaders(
  25.                     RedisConstants.COMMAND, "SET",
  26.                     RedisConstants.KEY, "key1",
  27.                     RedisConstants.VALUE, "value");
  28.             assertEquals("value", redisTemplate.opsForValue().get("key1"));
  29.         }
  30.         @Test
  31.         public void shouldGetAString() throws Exception {
  32.             redisTemplate.opsForValue().set("key2", "value");
  33.             Object result = sendHeaders(RedisConstants.KEY, "key2", RedisConstants.COMMAND, "GET");
  34.             assertEquals("value", result);
  35.         }
  36.     }

我們配置docker-maven-plugin使用一個(gè)Redis鏡像同時(shí)讓主機(jī)的6379端口映射到容器的6379端口:

 
 
  1.         com.ofbizian
  2.         docker-maven-plugin
  3.         1.0.0
  4.         
  5.             
  6.                 
  7.                     dockerfile/redis
  8.                     
  9.                         
  10.                             {
  11.                                 "PortBindings": {
  12.                                     "6379/tcp": [
  13.                                         {
  14.                                             "HostIp": "0.0.0.0",
  15.                                             "HostPort": "6379"
  16.                                         }
  17.                                     ]
  18.                                 }
  19.                             }
  20.                     ]]>
  21.                     
  22.                 
  23.             
  24.         
  25.         
  26.             
  27.                 start-docker
  28.                 pre-integration-test
  29.                 
  30.                     start
  31.                 
  32.             
  33.             
  34.                 stop-docker
  35.                 post-integration-test
  36.                 
  37.                     stop
  38.                 
  39.             
  40.         
  41.     

插件在編譯期啟動(dòng)一個(gè)Docker容器,然后在集成測(cè)試結(jié)束期關(guān)閉容器。

這是一個(gè)非常簡(jiǎn)單的例子,但是這個(gè)插件支持更多的場(chǎng)景,如多鏡像不同配置;將啟動(dòng)/關(guān)閉容器動(dòng)作定義在不同的maven構(gòu)建期間。Enjoy.


本文題目:極力推薦:一個(gè)Docker的maven插件
分享URL:http://m.5511xx.com/article/coshjsj.html