Add tb-node docker image. Improve TB docker services.
This commit is contained in:
parent
4bf57ebf20
commit
8af8b27e7e
@ -576,6 +576,27 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-install-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<file>${project.build.directory}/${pkg.name}.deb</file>
|
||||||
|
<artifactId>${project.artifactId}</artifactId>
|
||||||
|
<groupId>${project.groupId}</groupId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<classifier>deb</classifier>
|
||||||
|
<packaging>deb</packaging>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>install-deb</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>install-file</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.xolstice.maven.plugins</groupId>
|
<groupId>org.xolstice.maven.plugins</groupId>
|
||||||
<artifactId>protobuf-maven-plugin</artifactId>
|
<artifactId>protobuf-maven-plugin</artifactId>
|
||||||
|
|||||||
@ -407,7 +407,7 @@ state:
|
|||||||
|
|
||||||
kafka:
|
kafka:
|
||||||
enabled: true
|
enabled: true
|
||||||
bootstrap.servers: "${TB_KAFKA_SERVERS:192.168.2.157:9092}"
|
bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}"
|
||||||
acks: "${TB_KAFKA_ACKS:all}"
|
acks: "${TB_KAFKA_ACKS:all}"
|
||||||
retries: "${TB_KAFKA_RETRIES:1}"
|
retries: "${TB_KAFKA_RETRIES:1}"
|
||||||
batch.size: "${TB_KAFKA_BATCH_SIZE:16384}"
|
batch.size: "${TB_KAFKA_BATCH_SIZE:16384}"
|
||||||
@ -415,7 +415,7 @@ kafka:
|
|||||||
buffer.memory: "${TB_BUFFER_MEMORY:33554432}"
|
buffer.memory: "${TB_BUFFER_MEMORY:33554432}"
|
||||||
|
|
||||||
js:
|
js:
|
||||||
evaluator: "${JS_EVALUATOR:remote}" # local/remote
|
evaluator: "${JS_EVALUATOR:local}" # local/remote
|
||||||
# Built-in JVM JavaScript environment properties
|
# Built-in JVM JavaScript environment properties
|
||||||
local:
|
local:
|
||||||
# Use Sandboxed (secured) JVM JavaScript environment
|
# Use Sandboxed (secured) JVM JavaScript environment
|
||||||
|
|||||||
@ -32,15 +32,8 @@ public class TBKafkaAdmin {
|
|||||||
|
|
||||||
AdminClient client;
|
AdminClient client;
|
||||||
|
|
||||||
public TBKafkaAdmin() {
|
public TBKafkaAdmin(TbKafkaSettings settings) {
|
||||||
Properties props = new Properties();
|
client = AdminClient.create(settings.toProps());
|
||||||
props.put("bootstrap.servers", "localhost:9092");
|
|
||||||
props.put("group.id", "test");
|
|
||||||
props.put("enable.auto.commit", "true");
|
|
||||||
props.put("auto.commit.interval.ms", "1000");
|
|
||||||
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
|
|
||||||
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
|
|
||||||
client = AdminClient.create(props);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateTopicsResult createTopic(NewTopic topic){
|
public CreateTopicsResult createTopic(NewTopic topic){
|
||||||
|
|||||||
@ -52,12 +52,16 @@ public class TBKafkaProducerTemplate<T> {
|
|||||||
@Getter
|
@Getter
|
||||||
private final String defaultTopic;
|
private final String defaultTopic;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final TbKafkaSettings settings;
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
private TBKafkaProducerTemplate(TbKafkaSettings settings, TbKafkaEncoder<T> encoder, TbKafkaEnricher<T> enricher,
|
private TBKafkaProducerTemplate(TbKafkaSettings settings, TbKafkaEncoder<T> encoder, TbKafkaEnricher<T> enricher,
|
||||||
TbKafkaPartitioner<T> partitioner, String defaultTopic) {
|
TbKafkaPartitioner<T> partitioner, String defaultTopic) {
|
||||||
Properties props = settings.toProps();
|
Properties props = settings.toProps();
|
||||||
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
|
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
|
||||||
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
|
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
|
||||||
|
this.settings = settings;
|
||||||
this.producer = new KafkaProducer<>(props);
|
this.producer = new KafkaProducer<>(props);
|
||||||
this.encoder = encoder;
|
this.encoder = encoder;
|
||||||
this.enricher = enricher;
|
this.enricher = enricher;
|
||||||
@ -67,7 +71,7 @@ public class TBKafkaProducerTemplate<T> {
|
|||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
try {
|
try {
|
||||||
TBKafkaAdmin admin = new TBKafkaAdmin();
|
TBKafkaAdmin admin = new TBKafkaAdmin(this.settings);
|
||||||
CreateTopicsResult result = admin.createTopic(new NewTopic(defaultTopic, 100, (short) 1));
|
CreateTopicsResult result = admin.createTopic(new NewTopic(defaultTopic, 100, (short) 1));
|
||||||
result.all().get();
|
result.all().get();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -55,7 +55,8 @@ public class TbKafkaRequestTemplate<Request, Response> {
|
|||||||
private volatile boolean stopped = false;
|
private volatile boolean stopped = false;
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
public TbKafkaRequestTemplate(TBKafkaProducerTemplate<Request> requestTemplate, TBKafkaConsumerTemplate<Response> responseTemplate,
|
public TbKafkaRequestTemplate(TBKafkaProducerTemplate<Request> requestTemplate,
|
||||||
|
TBKafkaConsumerTemplate<Response> responseTemplate,
|
||||||
long maxRequestTimeout,
|
long maxRequestTimeout,
|
||||||
long maxPendingRequests,
|
long maxPendingRequests,
|
||||||
long pollInterval,
|
long pollInterval,
|
||||||
@ -77,7 +78,7 @@ public class TbKafkaRequestTemplate<Request, Response> {
|
|||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
try {
|
try {
|
||||||
TBKafkaAdmin admin = new TBKafkaAdmin();
|
TBKafkaAdmin admin = new TBKafkaAdmin(this.requestTemplate.getSettings());
|
||||||
CreateTopicsResult result = admin.createTopic(new NewTopic(responseTemplate.getTopic(), 1, (short) 1));
|
CreateTopicsResult result = admin.createTopic(new NewTopic(responseTemplate.getTopic(), 1, (short) 1));
|
||||||
result.all().get();
|
result.all().get();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
7
msa/docker/.env
Normal file
7
msa/docker/.env
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
DOCKER_REPO=local-maven-build
|
||||||
|
TB_VERSION=2.2.0-SNAPSHOT
|
||||||
|
|
||||||
|
KAFKA_TOPICS=js.eval.requests:100:1
|
||||||
|
HTTP_PORT=80
|
||||||
|
HTTPS_PORT=80
|
||||||
4
msa/docker/.gitignore
vendored
Normal file
4
msa/docker/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
haproxy/certs.d/**
|
||||||
|
haproxy/letsencrypt/**
|
||||||
|
tb-node/log/**
|
||||||
|
!.env
|
||||||
@ -19,17 +19,19 @@ version: '2'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
zookeeper:
|
zookeeper:
|
||||||
|
restart: always
|
||||||
image: "wurstmeister/zookeeper"
|
image: "wurstmeister/zookeeper"
|
||||||
ports:
|
ports:
|
||||||
- "2181"
|
- "2181"
|
||||||
kafka:
|
kafka:
|
||||||
|
restart: always
|
||||||
image: "wurstmeister/kafka"
|
image: "wurstmeister/kafka"
|
||||||
ports:
|
ports:
|
||||||
- "9092:9092"
|
- "9092:9092"
|
||||||
environment:
|
environment:
|
||||||
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092
|
KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092
|
||||||
KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://${EXTERNAL_HOSTNAME}:9092
|
KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://kafka:9092
|
||||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
|
||||||
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
|
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
|
||||||
KAFKA_CREATE_TOPICS: "${KAFKA_TOPICS}"
|
KAFKA_CREATE_TOPICS: "${KAFKA_TOPICS}"
|
||||||
@ -37,21 +39,81 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- zookeeper
|
- zookeeper
|
||||||
tb-js-executor:
|
tb-js-executor:
|
||||||
image: "local-maven-build/tb-js-executor:latest"
|
restart: always
|
||||||
|
image: "${DOCKER_REPO}/tb-js-executor:${TB_VERSION}"
|
||||||
environment:
|
environment:
|
||||||
TB_KAFKA_SERVERS: kafka:9092
|
TB_KAFKA_SERVERS: kafka:9092
|
||||||
env_file:
|
env_file:
|
||||||
- tb-js-executor.env
|
- tb-js-executor.env
|
||||||
depends_on:
|
depends_on:
|
||||||
- kafka
|
- kafka
|
||||||
tb-web-ui:
|
tb:
|
||||||
image: "local-maven-build/tb-web-ui:latest"
|
restart: always
|
||||||
|
image: "${DOCKER_REPO}/tb-node:${TB_VERSION}"
|
||||||
ports:
|
ports:
|
||||||
- "8090:8090"
|
- "8080"
|
||||||
|
- "1883:1883"
|
||||||
|
- "5683:5683/udp"
|
||||||
|
env_file:
|
||||||
|
- tb-node.env
|
||||||
environment:
|
environment:
|
||||||
HTTP_BIND_ADDRESS: 0.0.0.0
|
ZOOKEEPER_URL: zk:2181
|
||||||
HTTP_BIND_PORT: 8090
|
TB_KAFKA_SERVERS: kafka:9092
|
||||||
TB_HOST: ${EXTERNAL_HOSTNAME}
|
JS_EVALUATOR: remote
|
||||||
|
volumes:
|
||||||
|
- ./tb-node/db:/usr/share/thingsboard/data/db"
|
||||||
|
- ./tb-node/conf:/config
|
||||||
|
- ./tb-node/log:/var/log/thingsboard
|
||||||
|
depends_on:
|
||||||
|
- kafka
|
||||||
|
tb-web-ui1:
|
||||||
|
restart: always
|
||||||
|
image: "${DOCKER_REPO}/tb-web-ui:${TB_VERSION}"
|
||||||
|
ports:
|
||||||
|
- "8080"
|
||||||
|
environment:
|
||||||
|
TB_HOST: tb
|
||||||
TB_PORT: 8080
|
TB_PORT: 8080
|
||||||
env_file:
|
env_file:
|
||||||
- tb-web-ui.env
|
- tb-web-ui.env
|
||||||
|
tb-web-ui2:
|
||||||
|
restart: always
|
||||||
|
image: "${DOCKER_REPO}/tb-web-ui:${TB_VERSION}"
|
||||||
|
ports:
|
||||||
|
- "8080"
|
||||||
|
environment:
|
||||||
|
TB_HOST: tb
|
||||||
|
TB_PORT: 8080
|
||||||
|
env_file:
|
||||||
|
- tb-web-ui.env
|
||||||
|
tb-web-ui3:
|
||||||
|
restart: always
|
||||||
|
image: "${DOCKER_REPO}/tb-web-ui:${TB_VERSION}"
|
||||||
|
ports:
|
||||||
|
- "8080"
|
||||||
|
environment:
|
||||||
|
TB_HOST: tb
|
||||||
|
TB_PORT: 8080
|
||||||
|
env_file:
|
||||||
|
- tb-web-ui.env
|
||||||
|
web:
|
||||||
|
restart: always
|
||||||
|
container_name: haproxy-certbot
|
||||||
|
image: nmarus/haproxy-certbot
|
||||||
|
volumes:
|
||||||
|
- ./haproxy/config:/config
|
||||||
|
- ./haproxy/letsencrypt:/etc/letsencrypt
|
||||||
|
- ./haproxy/certs.d:/usr/local/etc/haproxy/certs.d
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "9999:9999"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
environment:
|
||||||
|
HTTP_PORT: ${HTTP_PORT}
|
||||||
|
HTTPS_PORT: ${HTTPS_PORT}
|
||||||
|
links:
|
||||||
|
- tb-web-ui1
|
||||||
|
- tb-web-ui2
|
||||||
|
- tb-web-ui3
|
||||||
|
|||||||
42
msa/docker/docker-install-tb.sh
Executable file
42
msa/docker/docker-install-tb.sh
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
|
||||||
|
case $key in
|
||||||
|
--loadDemo)
|
||||||
|
LOAD_DEMO=true
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift # past argument or value
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$LOAD_DEMO" == "true" ]; then
|
||||||
|
loadDemo=true
|
||||||
|
else
|
||||||
|
loadDemo=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose run --rm -e INSTALL_TB=true -e LOAD_DEMO=${loadDemo} tb
|
||||||
|
|
||||||
|
|
||||||
18
msa/docker/docker-start-services.sh
Executable file
18
msa/docker/docker-start-services.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
docker-compose up -d
|
||||||
18
msa/docker/docker-stop-services.sh
Executable file
18
msa/docker/docker-stop-services.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
docker-compose down
|
||||||
39
msa/docker/docker-upgrade-tb.sh
Executable file
39
msa/docker/docker-upgrade-tb.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
for i in "$@"
|
||||||
|
do
|
||||||
|
case $i in
|
||||||
|
--fromVersion=*)
|
||||||
|
FROM_VERSION="${i#*=}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "${FROM_VERSION// }" ]]; then
|
||||||
|
echo "--fromVersion parameter is invalid or unspecified!"
|
||||||
|
echo "Usage: docker-upgrade-tb.sh --fromVersion={VERSION}"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
fromVersion="${FROM_VERSION// }"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose run --rm -e UPGRADE_TB=true -e FROM_VERSION=${fromVersion} tb
|
||||||
4
msa/docker/haproxy/certs.d/.gitignore
vendored
Normal file
4
msa/docker/haproxy/certs.d/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
||||||
61
msa/docker/haproxy/config/haproxy.cfg
Normal file
61
msa/docker/haproxy/config/haproxy.cfg
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#HA Proxy Config
|
||||||
|
global
|
||||||
|
maxconn 4096
|
||||||
|
|
||||||
|
log 127.0.0.1 local0
|
||||||
|
log 127.0.0.1 local1 notice
|
||||||
|
|
||||||
|
ca-base /etc/ssl/certs
|
||||||
|
crt-base /etc/ssl/private
|
||||||
|
|
||||||
|
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
|
||||||
|
ssl-default-bind-options no-sslv3
|
||||||
|
|
||||||
|
defaults
|
||||||
|
|
||||||
|
option forwardfor
|
||||||
|
|
||||||
|
log global
|
||||||
|
|
||||||
|
mode http
|
||||||
|
|
||||||
|
timeout connect 5000ms
|
||||||
|
timeout client 50000ms
|
||||||
|
timeout server 50000ms
|
||||||
|
|
||||||
|
listen stats
|
||||||
|
bind *:9999
|
||||||
|
stats enable
|
||||||
|
stats hide-version
|
||||||
|
stats uri /stats
|
||||||
|
stats auth admin:admin@123
|
||||||
|
|
||||||
|
frontend http-in
|
||||||
|
bind *:${HTTP_PORT}
|
||||||
|
|
||||||
|
reqadd X-Forwarded-Proto:\ http
|
||||||
|
|
||||||
|
acl letsencrypt_http_acl path_beg /.well-known/acme-challenge/
|
||||||
|
redirect scheme https if !letsencrypt_http_acl
|
||||||
|
use_backend letsencrypt_http if letsencrypt_http_acl
|
||||||
|
|
||||||
|
default_backend tb-web-backend
|
||||||
|
|
||||||
|
frontend https_in
|
||||||
|
bind *:${HTTPS_PORT} ssl crt /usr/local/etc/haproxy/default.pem crt /usr/local/etc/haproxy/certs.d ciphers ECDHE-RSA-AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
|
||||||
|
|
||||||
|
reqadd X-Forwarded-Proto:\ https
|
||||||
|
|
||||||
|
default_backend tb-web-backend
|
||||||
|
|
||||||
|
backend letsencrypt_http
|
||||||
|
server letsencrypt_http_srv 127.0.0.1:8080
|
||||||
|
|
||||||
|
backend tb-web-backend
|
||||||
|
balance leastconn
|
||||||
|
option tcp-check
|
||||||
|
option log-health-checks
|
||||||
|
server tbWeb1 tb-web-ui1:8080 check
|
||||||
|
server tbWeb2 tb-web-ui2:8080 check
|
||||||
|
server tbWeb3 tb-web-ui3:8080 check
|
||||||
|
http-request set-header X-Forwarded-Port %[dst_port]
|
||||||
4
msa/docker/haproxy/letsencrypt/.gitignore
vendored
Normal file
4
msa/docker/haproxy/letsencrypt/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
||||||
23
msa/docker/tb-node.env
Normal file
23
msa/docker/tb-node.env
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# ThingsBoard server configuration
|
||||||
|
MQTT_BIND_ADDRESS=0.0.0.0
|
||||||
|
MQTT_BIND_PORT=1883
|
||||||
|
COAP_BIND_ADDRESS=0.0.0.0
|
||||||
|
COAP_BIND_PORT=5683
|
||||||
|
|
||||||
|
# type of database to use: sql[DEFAULT] or cassandra
|
||||||
|
DATABASE_TYPE=sql
|
||||||
|
SQL_DATA_FOLDER=/usr/share/thingsboard/data/db
|
||||||
|
|
||||||
|
# cassandra db config
|
||||||
|
CASSANDRA_URL=cassandra:9042
|
||||||
|
CASSANDRA_HOST=cassandra
|
||||||
|
CASSANDRA_PORT=9042
|
||||||
|
|
||||||
|
# postgres db config
|
||||||
|
POSTGRES_HOST=postgres
|
||||||
|
POSTGRES_PORT=5432
|
||||||
|
# SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
|
||||||
|
# SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver
|
||||||
|
# SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/thingsboard
|
||||||
|
# SPRING_DATASOURCE_USERNAME=postgres
|
||||||
|
# SPRING_DATASOURCE_PASSWORD=postgres
|
||||||
51
msa/docker/tb-node/conf/logback.xml
Normal file
51
msa/docker/tb-node/conf/logback.xml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!DOCTYPE configuration>
|
||||||
|
<configuration scan="true" scanPeriod="10 seconds">
|
||||||
|
|
||||||
|
<appender name="fileLogAppender"
|
||||||
|
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>/var/log/thingsboard/thingsboard.log</file>
|
||||||
|
<rollingPolicy
|
||||||
|
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>/var/log/thingsboard/thingsboard.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||||
|
<maxFileSize>100MB</maxFileSize>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<totalSizeCap>3GB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<logger name="org.thingsboard.server" level="INFO" />
|
||||||
|
<logger name="akka" level="INFO" />
|
||||||
|
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="fileLogAppender"/>
|
||||||
|
<appender-ref ref="STDOUT"/>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
</configuration>
|
||||||
24
msa/docker/tb-node/conf/thingsboard.conf
Normal file
24
msa/docker/tb-node/conf/thingsboard.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -Dplatform=deb -Dinstall.data_dir=/usr/share/thingsboard/data"
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/thingsboard/gc.log -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10"
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:GCLogFileSize=10M -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:CMSWaitDuration=10000 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelInitialMarkEnabled"
|
||||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:+CMSEdenChunksRecordAlways -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly"
|
||||||
|
export LOG_FILENAME=thingsboard.out
|
||||||
|
export LOADER_PATH=/usr/share/thingsboard/conf,/usr/share/thingsboard/extensions
|
||||||
4
msa/docker/tb-node/db/.gitignore
vendored
Normal file
4
msa/docker/tb-node/db/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
||||||
4
msa/docker/tb-node/log/.gitignore
vendored
Normal file
4
msa/docker/tb-node/log/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
HTTP_BIND_ADDRESS=0.0.0.0
|
HTTP_BIND_ADDRESS=0.0.0.0
|
||||||
HTTP_BIND_PORT=8090
|
HTTP_BIND_PORT=8080
|
||||||
TB_HOST=localhost
|
TB_HOST=localhost
|
||||||
TB_PORT=8080
|
TB_PORT=8080
|
||||||
LOGGER_LEVEL=debug
|
LOGGER_LEVEL=debug
|
||||||
|
|||||||
@ -40,7 +40,6 @@
|
|||||||
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
||||||
<pkg.linux.dist>${project.build.directory}/package/linux</pkg.linux.dist>
|
<pkg.linux.dist>${project.build.directory}/package/linux</pkg.linux.dist>
|
||||||
<pkg.win.dist>${project.build.directory}/package/windows</pkg.win.dist>
|
<pkg.win.dist>${project.build.directory}/package/windows</pkg.win.dist>
|
||||||
<dockerfile.skip>true</dockerfile.skip>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -280,7 +279,6 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.spotify</groupId>
|
<groupId>com.spotify</groupId>
|
||||||
<artifactId>dockerfile-maven-plugin</artifactId>
|
<artifactId>dockerfile-maven-plugin</artifactId>
|
||||||
<version>1.4.4</version>
|
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>build-docker-image</id>
|
<id>build-docker-image</id>
|
||||||
@ -292,7 +290,8 @@
|
|||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<skip>${dockerfile.skip}</skip>
|
<skip>${dockerfile.skip}</skip>
|
||||||
<repository>local-maven-build/${pkg.name}</repository>
|
<repository>${docker.repo}/${pkg.name}</repository>
|
||||||
|
<tag>${project.version}</tag>
|
||||||
<verbose>true</verbose>
|
<verbose>true</verbose>
|
||||||
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
|
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
|
||||||
<contextDirectory>${project.build.directory}</contextDirectory>
|
<contextDirectory>${project.build.directory}</contextDirectory>
|
||||||
|
|||||||
15
msa/pom.xml
15
msa/pom.xml
@ -32,11 +32,26 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<main.dir>${basedir}/..</main.dir>
|
<main.dir>${basedir}/..</main.dir>
|
||||||
|
<docker.repo>local-maven-build</docker.repo>
|
||||||
|
<dockerfile.skip>true</dockerfile.skip>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>js-executor</module>
|
<module>js-executor</module>
|
||||||
<module>web-ui</module>
|
<module>web-ui</module>
|
||||||
|
<module>tb-node</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.spotify</groupId>
|
||||||
|
<artifactId>dockerfile-maven-plugin</artifactId>
|
||||||
|
<version>1.4.5</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
28
msa/tb-node/docker/Dockerfile
Normal file
28
msa/tb-node/docker/Dockerfile
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM openjdk:8-jre
|
||||||
|
|
||||||
|
COPY start-tb-node.sh ${pkg.name}.deb /tmp/
|
||||||
|
|
||||||
|
RUN chmod a+x /tmp/*.sh \
|
||||||
|
&& mv /tmp/start-tb-node.sh /usr/bin
|
||||||
|
|
||||||
|
RUN dpkg -i /tmp/${pkg.name}.deb
|
||||||
|
|
||||||
|
RUN update-rc.d ${pkg.name} disable
|
||||||
|
|
||||||
|
CMD ["start-tb-node.sh"]
|
||||||
71
msa/tb-node/docker/start-tb-node.sh
Executable file
71
msa/tb-node/docker/start-tb-node.sh
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
CONF_FOLDER="/config"
|
||||||
|
jarfile=${pkg.installFolder}/bin/${pkg.name}.jar
|
||||||
|
configfile=${pkg.name}.conf
|
||||||
|
run_user=${pkg.name}
|
||||||
|
|
||||||
|
source "${CONF_FOLDER}/${configfile}"
|
||||||
|
|
||||||
|
export LOADER_PATH=/config,${LOADER_PATH}
|
||||||
|
|
||||||
|
if [ "$INSTALL_TB" == "true" ]; then
|
||||||
|
|
||||||
|
if [ "$LOAD_DEMO" == "true" ]; then
|
||||||
|
loadDemo=true
|
||||||
|
else
|
||||||
|
loadDemo=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting ThingsBoard installation ..."
|
||||||
|
|
||||||
|
exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication \
|
||||||
|
-Dinstall.load_demo=${loadDemo} \
|
||||||
|
-Dspring.jpa.hibernate.ddl-auto=none \
|
||||||
|
-Dinstall.upgrade=false \
|
||||||
|
-Dlogging.config=/usr/share/thingsboard/bin/install/logback.xml \
|
||||||
|
org.springframework.boot.loader.PropertiesLauncher
|
||||||
|
|
||||||
|
elif [ "$UPGRADE_TB" == "true" ]; then
|
||||||
|
|
||||||
|
echo "Starting ThingsBoard upgrade ..."
|
||||||
|
|
||||||
|
if [[ -z "${FROM_VERSION// }" ]]; then
|
||||||
|
echo "FROM_VERSION variable is invalid or unspecified!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
fromVersion="${FROM_VERSION// }"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication \
|
||||||
|
-Dspring.jpa.hibernate.ddl-auto=none \
|
||||||
|
-Dinstall.upgrade=true \
|
||||||
|
-Dinstall.upgrade.from_version=${fromVersion} \
|
||||||
|
-Dlogging.config=/usr/share/thingsboard/bin/install/logback.xml \
|
||||||
|
org.springframework.boot.loader.PropertiesLauncher
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "Starting '${project.name}' ..."
|
||||||
|
|
||||||
|
exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardServerApplication \
|
||||||
|
-Dspring.jpa.hibernate.ddl-auto=none \
|
||||||
|
-Dlogging.config=/config/logback.xml \
|
||||||
|
org.springframework.boot.loader.PropertiesLauncher
|
||||||
|
|
||||||
|
fi
|
||||||
136
msa/tb-node/pom.xml
Normal file
136
msa/tb-node/pom.xml
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.thingsboard</groupId>
|
||||||
|
<version>2.2.0-SNAPSHOT</version>
|
||||||
|
<artifactId>msa</artifactId>
|
||||||
|
</parent>
|
||||||
|
<groupId>org.thingsboard.msa</groupId>
|
||||||
|
<artifactId>tb-node</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<name>ThingsBoard Node Microservice</name>
|
||||||
|
<url>https://thingsboard.io</url>
|
||||||
|
<description>ThingsBoard Node Microservice</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<main.dir>${basedir}/../..</main.dir>
|
||||||
|
<pkg.name>thingsboard</pkg.name>
|
||||||
|
<pkg.user>thingsboard</pkg.user>
|
||||||
|
<pkg.unixLogFolder>/var/log/${pkg.name}</pkg.unixLogFolder>
|
||||||
|
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.thingsboard</groupId>
|
||||||
|
<artifactId>application</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<classifier>deb</classifier>
|
||||||
|
<type>deb</type>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-tb-deb</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>org.thingsboard</groupId>
|
||||||
|
<artifactId>application</artifactId>
|
||||||
|
<classifier>deb</classifier>
|
||||||
|
<type>deb</type>
|
||||||
|
<destFileName>${pkg.name}.deb</destFileName>
|
||||||
|
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-docker-config</id>
|
||||||
|
<phase>process-resources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>docker</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.spotify</groupId>
|
||||||
|
<artifactId>dockerfile-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>build-docker-image</id>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>build</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<skip>${dockerfile.skip}</skip>
|
||||||
|
<repository>${docker.repo}/tb-node</repository>
|
||||||
|
<tag>${project.version}</tag>
|
||||||
|
<verbose>true</verbose>
|
||||||
|
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
|
||||||
|
<contextDirectory>${project.build.directory}</contextDirectory>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>jenkins</id>
|
||||||
|
<name>Jenkins Repository</name>
|
||||||
|
<url>http://repo.jenkins-ci.org/releases</url>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
</project>
|
||||||
@ -40,7 +40,6 @@
|
|||||||
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
||||||
<pkg.linux.dist>${project.build.directory}/package/linux</pkg.linux.dist>
|
<pkg.linux.dist>${project.build.directory}/package/linux</pkg.linux.dist>
|
||||||
<pkg.win.dist>${project.build.directory}/package/windows</pkg.win.dist>
|
<pkg.win.dist>${project.build.directory}/package/windows</pkg.win.dist>
|
||||||
<dockerfile.skip>true</dockerfile.skip>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -304,7 +303,6 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.spotify</groupId>
|
<groupId>com.spotify</groupId>
|
||||||
<artifactId>dockerfile-maven-plugin</artifactId>
|
<artifactId>dockerfile-maven-plugin</artifactId>
|
||||||
<version>1.4.4</version>
|
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>build-docker-image</id>
|
<id>build-docker-image</id>
|
||||||
@ -316,7 +314,8 @@
|
|||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<skip>${dockerfile.skip}</skip>
|
<skip>${dockerfile.skip}</skip>
|
||||||
<repository>local-maven-build/${pkg.name}</repository>
|
<repository>${docker.repo}/${pkg.name}</repository>
|
||||||
|
<tag>${project.version}</tag>
|
||||||
<verbose>true</verbose>
|
<verbose>true</verbose>
|
||||||
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
|
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
|
||||||
<contextDirectory>${project.build.directory}</contextDirectory>
|
<contextDirectory>${project.build.directory}</contextDirectory>
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -284,6 +284,8 @@
|
|||||||
<exclude>src/main/scripts/windows/**</exclude>
|
<exclude>src/main/scripts/windows/**</exclude>
|
||||||
<exclude>src/main/resources/public/static/rulenode/**</exclude>
|
<exclude>src/main/resources/public/static/rulenode/**</exclude>
|
||||||
<exclude>**/*.proto.js</exclude>
|
<exclude>**/*.proto.js</exclude>
|
||||||
|
<exclude>docker/haproxy/**</exclude>
|
||||||
|
<exclude>docker/tb-node/**</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
<mapping>
|
<mapping>
|
||||||
<proto>JAVADOC_STYLE</proto>
|
<proto>JAVADOC_STYLE</proto>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user