Изпичам изображение на Docker, което изпълнява задача на Maven по време на изпълнение. Изглежда някак така:
ADD pom.xml /srv
ADD src /srv/src
WORKDIR /srv
RUN mvn dependencies:go-offline scala:testCompile
По време на изпълнение стартирам mvn gatling:execute
, за да стартирам помощна програма за тестване на натоварване.
Моят POM изглежда така:
<project>
<dependencies>
<dependency>
<groupId>io.gatling</groupId>
<artifactId>gatling-core</artifactId>
<version>${gatling.version}</version>
</dependency>
<dependency>
<groupId>io.gatling</groupId>
<artifactId>gatling-http</artifactId>
<version>${gatling.version}</version>
</dependency>
<dependency>
<groupId>io.gatling</groupId>
<artifactId>gatling-app</artifactId>
<version>${gatling.version}</version>
</dependency>
<dependency>
<groupId>io.gatling.highcharts</groupId>
<artifactId>gatling-charts-highcharts</artifactId>
<version>${gatling.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${scala-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>${gatling-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>execute</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Това, което искам да се случи, е, че когато в крайна сметка стартирам mvn gatling:execute
, не искам да изтеглям никакви зависимости, бих искал всички те да бъдат запечени в изображението по време на изграждане.
Въпреки това, дори изпълнението на mvn dependencies:go-offline scala:testCompile
не ме стига дотам. Изпълнението на gatling:execute
все още изисква изтегляне на повече зависимости.
Как мога да изтегля абсолютно всичко, което Maven изисква в моя Docker образ, така че да не са необходими изтегляния по време на изпълнение?
gatling:execute
без масово pwning крайна точка ;) - person Naftuli Kay   schedule 28.10.2015mvn gatling:execute
, но бих искал всички зависимости да бъдат компилирани в изображението по време на компилация, а не по време на изпълнение. Изчакването Maven да изтегли интернет в началното време на контейнера на Docker е нещо, което бих искал да избегна. - person Naftuli Kay   schedule 28.10.2015dependency:go-offline
, нали? Обикновено maven ще проверява зависимостите на SNAPSHOT веднъж на ден. Имате ли? Също така опитайте да наложите офлайн режим, когато изпълнявате execute:mvn -o gatling:execute
. - person ivant   schedule 28.10.2015