Noch neu bei Docker und versuchen, einen Jetty-Webservice in einem Container laufen zu lassen. Dies ist meine Docker-Datei zur ZeitDocker: Installiere Maven-Abhängigkeiten nur während der Build-Phase?
Rezept
FROM maven:3.3-jdk-8-alpine
# Install packages
# To find packages to install see - https://pkgs.alpinelinux.org/packages
RUN apk add --no-cache curl tar bash wget apache-ant
RUN apk info
# Do any Maven configuration
ENV MAVEN_HOME /usr/share/maven
VOLUME "$USER_HOME_DIR/.m2"
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
# Copy over project source files to the /tmp folder
COPY . /tmp/project
WORKDIR /tmp/project
# Preinstall any Maven depencencies
RUN mvn install -pl '!deb' -DskipTests
# Default command when running the docker image, can be overriden
CMD cd webapp/ && mvn jetty:run
Während des Docker Build angeben ich maven install
alle Abhängigkeiten für das Projekt zu installieren und die Gläser für jedes Modul aus Quellen zu bauen.
aber wenn dann die Docker Container laufen, versucht es noch alle Abhängigkeiten zu installieren und schlägt dann fehl, weil es nicht meine api.jar Datei finden
Meine Projektstruktur ist wie so
Projektstruktur Service
- api
- lib
- Webapp
- pom.xml
Fehler
Die folgenden Artefakte konnte nicht aufgelöst werden: com.foo.service: Service-api: jar: 1,14-snapshot
Das Ausführen der gleichen Schritte außerhalb eines Containers funktioniert einwandfrei und der Bootssteg-Service beginnt in Ordnung. Irgendwelche Ideen wie zu beheben?
Mögliche Duplikat [Sie alle Maven Abhängigkeiten nicht herunterladen auf einem Docker bauen] (http://stackoverflow.com/questions/38293073/do-not-download -all-maven-dependencies-on-a-docker-build) – nwinkler
Möglicherweise auch von Interesse: http://stackoverflow.com/questions/39977955/how-to-mount-docker-volume-into-my-docker-project -using-compose – nwinkler
Diese sind nicht nützlich, weil ich Abhängigkeiten während des Docker-Builds herunterladen möchte, aber ich möchte den gleichen Prozess nicht bei Docker ausführen – kaleeway