Skip to content

Commit

Permalink
#47: Dokumentation zu Build und Dockerfile ergänzt
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Jun 5, 2020
1 parent 786dc58 commit e5eacdc
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 5 deletions.
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Packaging the gdv-xport-service.war
FROM maven:3.6.3-openjdk-8 AS build-env
COPY . .
RUN mvn package
RUN mvn -DskipTests package

# Starting the service
FROM openjdk:8-alpine
WORKDIR /usr/src/myapp
COPY --from=build-env /service/target/gdv-xport-service-4.0.4.war /usr/src/myapp/app.war
COPY --from=build-env /service/target/gdv-xport-service.war /usr/src/myapp/app.war
EXPOSE 2517
ENTRYPOINT ["java", "-jar", "app.war"]
7 changes: 7 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ Allerdings wurde diese Bibliothek schon seit laengerer Zeit nicht mehr aktualisi



== image:https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Docker_%28container_engine%29_logo.svg/320px-Docker_%28container_engine%29_logo.svg.png[Docker]

Ab Version 4.1 gibt es jetzt dank der Mithilfe von https://github.com/janjagusch[janjagusch] ein erstes link:Dockerfile[Dockerfile], mit dem sowohl die Anwendung gebaut, als auch im Container gestartet werden kann.
Unter link:doc/build.adoc[doc/build.adoc] ist der Aufruf beschrieben.
Auch der manuelle Bau der Anwendung ist dort beschrieben.


== GIT Branching-Modell

Entwickelt wird nach http://nvie.com/posts/a-successful-git-branching-model/[A successful Git branching model] von Vincent Driessen.
Expand Down
4 changes: 2 additions & 2 deletions doc/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ https://coveralls.io/github/oboehm/gdv.xport[image:https://coveralls.io/repos/gi

Dieser Bereich ist für die interne Entwicklung gedacht:

* link:build.adoc[Build]: CI-Build, manueller Bau und Bauen über Docker
* link:delivery.adoc[Check-Liste]: für die Auslieferung eines neuen Releases
* link:deployment.adoc[Deployment]: für das Deployment auf Heroku
* link:build.adoc[CI-Build]: Continuous Integration Build
* link:release-notes[Release Notes]: Übersicht über die einzelnen Versionen


Expand All @@ -32,7 +32,7 @@ Nur dann kann man ihn auch beheben.

Gerne darf man einen eigenen Fork von gdv.xport ziehen, um mit dem Code zu experimentieren.
Während das letzte Release auf dem https://github.com/oboehm/gdv.xport[master]-Branch zu finden ist,
findet die aktuelle Entwicklung auf dem https://github.com/oboehm/gdv.xport/tree/develop/4.x[develop/4.x]-Branch statt.
findet die aktuelle Entwicklung auf dem https://github.com/oboehm/gdv.xport/tree/develop[develop]-Branch statt.

Um festzustellen, ob das Projekt richtig aufgesetzt ist, startet man am besten die Unit-Tests, die ca. 90% des Codes abdecken.
Laufen sie durch und ist alles im grünen Bereich, kann man dann bequem den Code erkunden und eigene Experimente (oder Erweiterungen) anstellen.
Expand Down
41 changes: 40 additions & 1 deletion doc/build.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
= CI-Build
= Bau der Anwendung

== CI-Build

.Build-Server
|===
Expand Down Expand Up @@ -26,3 +28,40 @@
|===

Der CI-Build (CI: Continuous Integration) läuft nach einem Commit und einem Push auf GitHub automatisch an.


== Manueller Bau mit Maven

Voraussetzung für den manuellen Bau der Anwendung sind:

* Java 8
* http://maven.apache.org/[Maven], mindestens in Version 3.6

Sind diese Voraussetzungen gegeben, kann die WAR-Datei für den Start als Web-Anwendung über folgendes Kommando gebaut werden:

```
mvn -DskipTests package
```

Mit der Option `-DskipTests` werden die Unit-Tests übersprungen.
Nach ca. 30 Sekunden sind dann alle Module gebaut.
Die WAR-Datei für den Start als Web-Anwendung befindet sich im Verzeichnis `service/target`.



== Bauen im Container

Sind die Voraussetzung für den manuellen Bau nicht gegeben (kein Java, kein Maven), kann die Anwendung auch über Docker gebaut werden.
Dazu gibt es auf oberster Ebene ein link:../Dockerfile[Dockerfile], mit dem die gesamte Anwendung in Docker gebaut werden kann:

```
docker build -t gdv.xport -f Dockerfile .
```

Danach kann dieser Docker-Container über

```
docker run -p 2517:2517 gdv.xport
```

gestartet und unter http://localhost:2517/ aufgerufen werden.
7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,13 @@
<role>Java Developer</role>
</roles>
</contributor>
<contributor>
<name>Jan-Benedikt Jagusch</name>
<url>https://github.com/janjagusch</url>
<roles>
<role>Maintainer (Dockerfile)</role>
</roles>
</contributor>
</contributors>

<scm>
Expand Down
19 changes: 19 additions & 0 deletions service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,25 @@
</configuration>
</plugin>

<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target name="copy-dockerfile">
<echo message="copy to ${project.build.finalName}.war to ${project.artifactId}.war" level="info"/>
<copy file="target/${project.build.finalName}.war" tofile="target/${project.artifactId}.war" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

</plugins>

</build>
Expand Down

0 comments on commit e5eacdc

Please sign in to comment.