Commit 84bbd412db0cdfb6975660ba06befb5f0d38bd31

Authored by Andrew Shvayka
Committed by GitHub
2 parents 19d3afa6 f4b32ba3

Merge pull request #1 from ashvayka/fix-deb

Fix for docker deb run
... ... @@ -112,7 +112,7 @@ buildDeb {
112 112
113 113 archiveName = "${pkgName}.deb"
114 114
115   - requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer")
  115 + requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
116 116
117 117 configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
118 118 configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
... ...
... ... @@ -169,8 +169,17 @@ cache:
169 169 # Enable/disable cache functionality.
170 170 enabled: "${CACHE_ENABLED:true}"
171 171 device_credentials:
172   - # default time to store device credentials in cache, in seconds
173   - time_to_live: "${DEVICE_CREDENTIAL_CACHE_TTL:3600}"
174   - # default maximum size of device credentials cache
175   - max_size: "${DEVICE_CREDENTIAL_CACHE_MAX_SIZE:1000000}"
  172 + # Default time to store device credentials in cache, in seconds
  173 + time_to_live: "${CACHE_DEVICE_CREDENTIAL_TTL:3600}"
  174 + # Maximum size of the map. When maximum size is reached, the map is evicted based on the policy defined.
  175 + max_size:
  176 + # Max size policy options:
  177 + # PER_NODE: Maximum number of map entries in each JVM.
  178 + # PER_PARTITION: Maximum number of map entries within each partition.
  179 + # USED_HEAP_SIZE: Maximum used heap size in megabytes for each JVM.
  180 + # USED_HEAP_PERCENTAGE: Maximum used heap size percentage for each JVM.
  181 + # FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM.
  182 + # FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM.
  183 + policy: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_POLICY:PER_NODE}"
  184 + size: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_SIZE:1000000}"
176 185
... ...
... ... @@ -15,10 +15,7 @@
15 15 */
16 16 package org.thingsboard.server.dao.cache;
17 17
18   -import com.hazelcast.config.Config;
19   -import com.hazelcast.config.DiscoveryStrategyConfig;
20   -import com.hazelcast.config.MapConfig;
21   -import com.hazelcast.config.MaxSizeConfig;
  18 +import com.hazelcast.config.*;
22 19 import com.hazelcast.core.Hazelcast;
23 20 import com.hazelcast.core.HazelcastInstance;
24 21 import com.hazelcast.instance.GroupProperty;
... ... @@ -41,10 +38,13 @@ public class ServiceCacheConfiguration {
41 38
42 39 private static final String HAZELCAST_CLUSTER_NAME = "hazelcast";
43 40
44   - @Value("${cache.device_credentials.max_size}")
45   - private Integer deviceCredentialsCacheMaxSize;
  41 + @Value("${cache.device_credentials.max_size.size}")
  42 + private Integer cacheDeviceCredentialsMaxSizeSize;
  43 + @Value("${cache.device_credentials.max_size.policy}")
  44 + private String cacheDeviceCredentialsMaxSizePolicy;
46 45 @Value("${cache.device_credentials.time_to_live}")
47   - private Integer deviceCredentialsCacheTTL;
  46 + private Integer cacheDeviceCredentialsTTL;
  47 +
48 48
49 49 @Value("${zk.enabled}")
50 50 private boolean zkEnabled;
... ... @@ -69,8 +69,13 @@ public class ServiceCacheConfiguration {
69 69 }
70 70
71 71 MapConfig deviceCredentialsCacheConfig = new MapConfig(CacheConstants.DEVICE_CREDENTIALS_CACHE);
72   - deviceCredentialsCacheConfig.setTimeToLiveSeconds(deviceCredentialsCacheTTL);
73   - deviceCredentialsCacheConfig.setMaxSizeConfig(new MaxSizeConfig(deviceCredentialsCacheMaxSize, MaxSizeConfig.MaxSizePolicy.PER_NODE));
  72 + deviceCredentialsCacheConfig.setTimeToLiveSeconds(cacheDeviceCredentialsTTL);
  73 + deviceCredentialsCacheConfig.setEvictionPolicy(EvictionPolicy.LRU);
  74 + deviceCredentialsCacheConfig.setMaxSizeConfig(
  75 + new MaxSizeConfig(
  76 + cacheDeviceCredentialsMaxSizeSize,
  77 + MaxSizeConfig.MaxSizePolicy.valueOf(cacheDeviceCredentialsMaxSizePolicy))
  78 + );
74 79 config.addMapConfig(deviceCredentialsCacheConfig);
75 80
76 81 return Hazelcast.newHazelcastInstance(config);
... ...
1 1 cache.enabled=false
2 2 cache.device_credentials.time_to_live=3600
3   -cache.device_credentials.max_size=1000000
  3 +cache.device_credentials.max_size.size=1000000
  4 +cache.device_credentials.max_size.policy=PER_NODE
4 5
5 6 zk.enabled=false
6 7 zk.url=localhost:2181
... ...
... ... @@ -26,18 +26,18 @@ services:
26 26 links:
27 27 - cassandra:db
28 28 - zookeeper:zk
29   - - db-schema:db-schema
  29 + - thingsboard-db-schema:thingsboard-db-schema
30 30 volumes:
31 31 - "../application/target/thingsboard.deb:/root/thingsboard.deb"
32 32 env_file:
33 33 - thingsboard.env
34   - entrypoint: ./run_web_app.sh
35   - db-schema:
36   - build: db-schema
  34 + entrypoint: ./run_thingsboard.sh
  35 + thingsboard-db-schema:
  36 + build: thingsboard-db-schema
37 37 links:
38 38 - cassandra:db
39 39 env_file:
40   - - db-schema.env
  40 + - thingsboard-db-schema.env
41 41 volumes:
42 42 - "../dao/src/main/resources/schema.cql:/root/schema.cql"
43 43 - "../dao/src/main/resources/demo-data.cql:/root/demo-data.cql"
... ...
docker/thingsboard-db-schema/Dockerfile renamed from docker/db-schema/Dockerfile
docker/thingsboard-db-schema/install_schema.sh renamed from docker/db-schema/install_schema.sh
... ... @@ -14,10 +14,10 @@
14 14 # limitations under the License.
15 15 #
16 16
17   -FROM java:8-jre
  17 +FROM openjdk:8-jre
18 18
19   -ADD run_web_app.sh /root/run_web_app.sh
  19 +ADD run_thingsboard.sh /root/run_thingsboard.sh
20 20
21   -RUN chmod +x /root/run_web_app.sh
  21 +RUN chmod +x /root/run_thingsboard.sh
22 22
23 23 WORKDIR /root
... ...
docker/thingsboard/run_thingsboard.sh renamed from docker/thingsboard/run_web_app.sh
... ... @@ -21,16 +21,24 @@ dpkg -i /root/thingsboard.deb
21 21 reachable=0
22 22 while [ $reachable -eq 0 ];
23 23 do
24   - echo "db-schema container is still in progress. waiting until it completed..."
  24 + echo "thingsboard-db-schema container is still in progress. waiting until it completed..."
25 25 sleep 3
26   - ping -q -c 1 db-schema > /dev/null 2>&1
  26 + ping -q -c 1 thingsboard-db-schema > /dev/null 2>&1
27 27 if [ "$?" -ne 0 ];
28 28 then
29   - echo "db-schema container completed!"
  29 + echo "thingsboard-db-schema container completed!"
30 30 reachable=1
31 31 fi
32 32 done
33 33
  34 +# Copying env variables into conf files
  35 +printenv | while read x; do echo export $x; done >> /usr/share/thingsboard/conf/thingsboard.conf
  36 +
  37 +cat /usr/share/thingsboard/conf/thingsboard.conf
  38 +
34 39 echo "Starting 'Thingsboard' service..."
35   -thingsboard start
  40 +service thingsboard start
36 41
  42 +# Wait until log file is created
  43 +sleep 3
  44 +tail -f /var/log/thingsboard/thingsboard.log
... ...