Fix for docker deb run

This commit is contained in:
volodymyr-babak 2016-12-01 13:04:59 +02:00
parent 19d3afa650
commit f4b32ba333
10 changed files with 51 additions and 28 deletions

View File

@ -112,7 +112,7 @@ buildDeb {
archiveName = "${pkgName}.deb"
requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer")
requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")

View File

@ -169,8 +169,17 @@ cache:
# Enable/disable cache functionality.
enabled: "${CACHE_ENABLED:true}"
device_credentials:
# default time to store device credentials in cache, in seconds
time_to_live: "${DEVICE_CREDENTIAL_CACHE_TTL:3600}"
# default maximum size of device credentials cache
max_size: "${DEVICE_CREDENTIAL_CACHE_MAX_SIZE:1000000}"
# Default time to store device credentials in cache, in seconds
time_to_live: "${CACHE_DEVICE_CREDENTIAL_TTL:3600}"
# Maximum size of the map. When maximum size is reached, the map is evicted based on the policy defined.
max_size:
# Max size policy options:
# PER_NODE: Maximum number of map entries in each JVM.
# PER_PARTITION: Maximum number of map entries within each partition.
# USED_HEAP_SIZE: Maximum used heap size in megabytes for each JVM.
# USED_HEAP_PERCENTAGE: Maximum used heap size percentage for each JVM.
# FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM.
# FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM.
policy: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_POLICY:PER_NODE}"
size: "${CACHE_DEVICE_CREDENTIAL_MAX_SIZE_SIZE:1000000}"

View File

@ -15,10 +15,7 @@
*/
package org.thingsboard.server.dao.cache;
import com.hazelcast.config.Config;
import com.hazelcast.config.DiscoveryStrategyConfig;
import com.hazelcast.config.MapConfig;
import com.hazelcast.config.MaxSizeConfig;
import com.hazelcast.config.*;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.instance.GroupProperty;
@ -41,10 +38,13 @@ public class ServiceCacheConfiguration {
private static final String HAZELCAST_CLUSTER_NAME = "hazelcast";
@Value("${cache.device_credentials.max_size}")
private Integer deviceCredentialsCacheMaxSize;
@Value("${cache.device_credentials.max_size.size}")
private Integer cacheDeviceCredentialsMaxSizeSize;
@Value("${cache.device_credentials.max_size.policy}")
private String cacheDeviceCredentialsMaxSizePolicy;
@Value("${cache.device_credentials.time_to_live}")
private Integer deviceCredentialsCacheTTL;
private Integer cacheDeviceCredentialsTTL;
@Value("${zk.enabled}")
private boolean zkEnabled;
@ -69,8 +69,13 @@ public class ServiceCacheConfiguration {
}
MapConfig deviceCredentialsCacheConfig = new MapConfig(CacheConstants.DEVICE_CREDENTIALS_CACHE);
deviceCredentialsCacheConfig.setTimeToLiveSeconds(deviceCredentialsCacheTTL);
deviceCredentialsCacheConfig.setMaxSizeConfig(new MaxSizeConfig(deviceCredentialsCacheMaxSize, MaxSizeConfig.MaxSizePolicy.PER_NODE));
deviceCredentialsCacheConfig.setTimeToLiveSeconds(cacheDeviceCredentialsTTL);
deviceCredentialsCacheConfig.setEvictionPolicy(EvictionPolicy.LRU);
deviceCredentialsCacheConfig.setMaxSizeConfig(
new MaxSizeConfig(
cacheDeviceCredentialsMaxSizeSize,
MaxSizeConfig.MaxSizePolicy.valueOf(cacheDeviceCredentialsMaxSizePolicy))
);
config.addMapConfig(deviceCredentialsCacheConfig);
return Hazelcast.newHazelcastInstance(config);

View File

@ -1,6 +1,7 @@
cache.enabled=false
cache.device_credentials.time_to_live=3600
cache.device_credentials.max_size=1000000
cache.device_credentials.max_size.size=1000000
cache.device_credentials.max_size.policy=PER_NODE
zk.enabled=false
zk.url=localhost:2181

View File

@ -26,18 +26,18 @@ services:
links:
- cassandra:db
- zookeeper:zk
- db-schema:db-schema
- thingsboard-db-schema:thingsboard-db-schema
volumes:
- "../application/target/thingsboard.deb:/root/thingsboard.deb"
env_file:
- thingsboard.env
entrypoint: ./run_web_app.sh
db-schema:
build: db-schema
entrypoint: ./run_thingsboard.sh
thingsboard-db-schema:
build: thingsboard-db-schema
links:
- cassandra:db
env_file:
- db-schema.env
- thingsboard-db-schema.env
volumes:
- "../dao/src/main/resources/schema.cql:/root/schema.cql"
- "../dao/src/main/resources/demo-data.cql:/root/demo-data.cql"

View File

@ -14,10 +14,10 @@
# limitations under the License.
#
FROM java:8-jre
FROM openjdk:8-jre
ADD run_web_app.sh /root/run_web_app.sh
ADD run_thingsboard.sh /root/run_thingsboard.sh
RUN chmod +x /root/run_web_app.sh
RUN chmod +x /root/run_thingsboard.sh
WORKDIR /root

View File

@ -21,16 +21,24 @@ dpkg -i /root/thingsboard.deb
reachable=0
while [ $reachable -eq 0 ];
do
echo "db-schema container is still in progress. waiting until it completed..."
echo "thingsboard-db-schema container is still in progress. waiting until it completed..."
sleep 3
ping -q -c 1 db-schema > /dev/null 2>&1
ping -q -c 1 thingsboard-db-schema > /dev/null 2>&1
if [ "$?" -ne 0 ];
then
echo "db-schema container completed!"
echo "thingsboard-db-schema container completed!"
reachable=1
fi
done
echo "Starting 'Thingsboard' service..."
thingsboard start
# Copying env variables into conf files
printenv | while read x; do echo export $x; done >> /usr/share/thingsboard/conf/thingsboard.conf
cat /usr/share/thingsboard/conf/thingsboard.conf
echo "Starting 'Thingsboard' service..."
service thingsboard start
# Wait until log file is created
sleep 3
tail -f /var/log/thingsboard/thingsboard.log