您好,登錄后才能下訂單哦!
Docker中maven插件怎么使用,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
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)去中央倉(cāng)庫下載。
以下與Apache Camel的集成測(cè)試是被忽略的,因?yàn)闇y(cè)試需要一個(gè)Redis實(shí)例才可以執(zhí)行:
package org.apache.camel.component.redis; import org.apache.camel.impl.JndiRegistry; import org.junit.Ignore; import org.junit.Test; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; @Ignore public class RedisProducerIntegrationTest extends RedisTestSupport { private static final JedisConnectionFactory CONNECTION_FACTORY = new JedisConnectionFactory(); static { CONNECTION_FACTORY.afterPropertiesSet(); } @Override protected JndiRegistry createRegistry() throws Exception { JndiRegistry registry = super.createRegistry(); redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(CONNECTION_FACTORY); redisTemplate.afterPropertiesSet(); registry.bind("redisTemplate", redisTemplate); return registry; } @Test public void shouldSetAString() throws Exception { sendHeaders( RedisConstants.COMMAND, "SET", RedisConstants.KEY, "key1", RedisConstants.VALUE, "value"); assertEquals("value", redisTemplate.opsForValue().get("key1")); } @Test public void shouldGetAString() throws Exception { redisTemplate.opsForValue().set("key2", "value"); Object result = sendHeaders(RedisConstants.KEY, "key2", RedisConstants.COMMAND, "GET"); assertEquals("value", result); } }
我們配置docker-maven-plugin使用一個(gè)Redis鏡像同時(shí)讓主機(jī)的6379端口映射到容器的6379端口:
<plugin> <groupId>com.ofbizian</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <images> <image> <name>dockerfile/redis</name> <hostConfig> <![CDATA[ { "PortBindings": { "6379/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "6379" } ] } } ]]> </hostConfig> </image> </images> </configuration> <executions> <execution> <id>start-docker</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> </execution> <execution> <id>stop-docker</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin>
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。