|
|
@@ -0,0 +1,108 @@
|
|
|
+## Docker
|
|
|
+
|
|
|
+The docker container is based on the image **zenika/alpine-maven:3-jdk8**. Uses **Java JDK 8** and **Maven 3**.
|
|
|
+Configuration is composed of **docker-compose.yaml** and **Dockerfile**.
|
|
|
+
|
|
|
+#### Dockerfile
|
|
|
+Fundamental configuration which is used as a base for all services. Contains several variables:
|
|
|
+
|
|
|
+<br />**Accessible in compile time:**
|
|
|
+- MAVEN_PROFILE: defines maven profile
|
|
|
+
|
|
|
+<br />**Accessible in runtime:**
|
|
|
+- APP_PARAMS: defines parameters for an application
|
|
|
+- DEBUG: defines if debugging will be enabled
|
|
|
+
|
|
|
+#### Docker-compose
|
|
|
+Configuration of services. This file contains configuration of each service where are defined build and runtime variables.
|
|
|
+
|
|
|
+Name of service is **fcs2** which is used for *build* and *start* the service. Build arguments contain definition of maven profile.
|
|
|
+Arguments variables defines in *build* section are accessible only during compile time. When the images is created,
|
|
|
+the variables can not be changed. Environment variables are located in *environment* section and can be changed
|
|
|
+after the build process. These variables are used to set configuration for the built.
|
|
|
+Debugging can be enabled to set **DEBUG** variable to **true** and publish the port **50005**. Otherwise the debugging
|
|
|
+is disable.
|
|
|
+
|
|
|
+##### docker-compose.yaml
|
|
|
+```yaml
|
|
|
+services:
|
|
|
+ fcs2:
|
|
|
+ container_name: fieldclimateSenslog2
|
|
|
+ build:
|
|
|
+ dockerfile: Dockerfile
|
|
|
+ context: .
|
|
|
+ args:
|
|
|
+ MAVEN_PROFILE: FieldClimateSenslog2
|
|
|
+ ports:
|
|
|
+ - "5005:5005"
|
|
|
+ restart: always
|
|
|
+ environment:
|
|
|
+ APP_PARAMS: -cf config/test.yaml
|
|
|
+ DEBUG: "true"
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+## Build & run
|
|
|
+To build all or a specific one service.
|
|
|
+```sh
|
|
|
+$ docker-compose build
|
|
|
+$ docker-compose build <service_name> // e.g. fcs2
|
|
|
+```
|
|
|
+To start all or a specific one service.
|
|
|
+```sh
|
|
|
+$ docker-compose up
|
|
|
+$ docker-compose up <service> // e.g. fcs2
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+## Java & Maven
|
|
|
+The application supports **Java 8+** and uses **Maven** as a build automation tool. Configuration for Maven contains
|
|
|
+profiles which defines modules that will be compiled.
|
|
|
+
|
|
|
+It is recommended to clean entire project before compilation.
|
|
|
+```sh
|
|
|
+$ mvn clean
|
|
|
+```
|
|
|
+
|
|
|
+To build all modules.
|
|
|
+```sh
|
|
|
+$ mvn package
|
|
|
+```
|
|
|
+
|
|
|
+To build only the modules which contains modules for the Azure LoraWan and the Senslog V1.
|
|
|
+```sh
|
|
|
+$ mvn package -P LoraWanSenslog1
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+All modules (JARs) are compiled to the **bin** folder. To be able to start the application, it is important to add
|
|
|
+all JARs to classpath and to define main class (java <jvm-params> <main_class> <app_params>).
|
|
|
+```sh
|
|
|
+$ java -cp "bin/*" cz.senslog.connector.app.Main <app_params>
|
|
|
+```
|
|
|
+
|
|
|
+#### Parameters
|
|
|
+The application allows these parameters:
|
|
|
+```sh
|
|
|
+Usage: General Senslog Connector [options]
|
|
|
+ Options:
|
|
|
+ -cf, -config-file
|
|
|
+ Configuration file in .yaml format.
|
|
|
+ -h, -help
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|