В настоящее время я использую docker ee, в котором не поддерживается multi build. Поэтому я использую именованный том для хранения данных из одного контейнера и использовать те же данные для другого контейнера.
Я сделал 2 файла Docker, в которых 1 файл Docker получает проект из репозитория git, а во 2-м файле он использует maven для запуска этого проекта.
Дело в том, что он работает нормально, когда вы запускаете их по отдельности, но затем я попытался с docker-compose, так как он не загружает зависимости из частного хранилища nexus. Я должен предоставить что-нибудь в порядке размещения файлов docker-compose, чтобы извлечь зависимости из частного репозиторий. Показывает неизвестный хост репозиторий
Dockerfile_git-
FROM alpine/git
MAINTAINER Tejas
RUN mkdir /root/.ssh/
ADD id_rsa /root/.ssh/id_rsa
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan <<host>> >> ~/.ssh/known_hosts
WORKDIR /share
RUN git clone <<url>>
Dockerfile_mvn-
FROM maven:3.5-jdk-8-alpine
MAINTAINER Tejas
WORKDIR /share/trainingcontainers/
RUN echo $MAVEN_HOME
RUN rm -f $MAVEN_HOME/conf/settings.xml
COPY ./settings.xml $MAVEN_HOME/conf/
WORKDIR /share/trainingcontainers/selenium-grid/Website_Login
CMD mvn clean install
version: "3"
services:
task1:
build:
context: .
dockerfile: Dockerfile_git
volumes:
- "myshare2:/share"
task2:
build:
context: .
dockerfile: Dockerfile_mvn
volumes:
- "myshare2:/share"
volumes:
myshare2:
Создание файлов журналов-
task2_1 | [INFO] --------------------< Website_Login:Website_Login >---------------------
task2_1 | [INFO] Building Website_Login 0.0.1-SNAPSHOT
task2_1 | [INFO] --------------------------------[ jar ]---------------------------------
task2_1 | Downloading from nexus: http://<<hostname>>/repository/maven-public/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
task2_1 | [INFO] ------------------------------------------------------------------------
task2_1 | [INFO] BUILD FAILURE
task2_1 | [INFO] ------------------------------------------------------------------------
task2_1 | [INFO] Total time: 6.003 s
task2_1 | [INFO] Finished at: 2019-04-01T10:15:01Z
task2_1 | [INFO] ------------------------------------------------------------------------
task2_1 | [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to nexus (http://<<hostname>>/repository/maven-public/): <<hostname>>: Try again: Unknown host <<hostname>>: Try again -> [Help 1]
settings.xml -
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://<<hostname>>/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
</properties>
</profile>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>