中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中maven插件怎么使用

發布時間:2021-08-12 16:22:01 來源:億速云 閱讀:189 作者:Leah 欄目:云計算

Docker中maven插件怎么使用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

什么是Docker

Docker最近在業內非常火。如果你現在還不知道Docker是什么,你可要小心嘍。今后,你會發現自己正在以某種方式使用它。本文假設你已經有了Docker的基礎。如果你現在對它還不是很熟悉,我確定你以后還會來讀這篇文章。

Docker用于集成測試、復雜分布式系統演示,非常理想。甚至可以用于運行生產環境下的系統。它是一個開源的軟件容器。你可以把它想像成一個非常輕的超級快的虛擬機。

例子

得到"Integration testing with Maven and Docker"文章和Docker Java API項目的啟發,我寫了一個簡單的可以管理Docker容器maven插件,Docker Maven Plugin。這個插件將會根據你的配置,在構建時啟動容器,構建結束時停止容器并刪除,如果本地找不到鏡像,Docker會自動去中央倉庫下載。

以下與Apache Camel的集成測試是被忽略的,因為測試需要一個Redis實例才可以執行:

	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使用一個Redis鏡像同時讓主機的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>

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合肥市| 讷河市| 马尔康县| 潜山县| 莒南县| 章丘市| 育儿| 中宁县| 曲周县| 沧州市| 东山县| 本溪市| 措美县| 黄浦区| 怀仁县| 武定县| 鄂托克旗| 南江县| 莱阳市| 凤凰县| 苍南县| 囊谦县| 天等县| 皮山县| 南乐县| 广水市| 吉林省| 娱乐| 博野县| 兴义市| 道孚县| 贡嘎县| 保靖县| 龙泉市| 西充县| 化州市| 青岛市| 兴隆县| 花垣县| 池州市| 新和县|