Merge branch 'develop/3.4' into feature/entities-version-control

This commit is contained in:
Igor Kulikov 2022-06-16 15:19:06 +03:00
commit 9168669b4b
20 changed files with 162 additions and 180 deletions

View File

@ -14,16 +14,13 @@
# limitations under the License.
#
FROM node:16.13.1-bullseye-slim
COPY start-js-executor.sh /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-js-executor.sh /usr/bin
FROM node:16.15.1-bullseye-slim
ENV NODE_ENV production
ENV DOCKER_MODE true
COPY start-js-executor.sh /tmp/
WORKDIR ${pkg.installFolder}
COPY ["src/package.json", "src/yarn.lock", "./"]
@ -34,9 +31,10 @@ COPY src/api ./api
COPY src/queue ./queue
COPY src/server.js ./
RUN chown -R node:node ${pkg.installFolder}
RUN yarn install --production && yarn cache clean --all
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-js-executor.sh /usr/bin \
&& chown -R node:node ${pkg.installFolder} \
&& yarn install --production && yarn cache clean --all
USER node

View File

@ -6,7 +6,7 @@
"main": "server.js",
"bin": "server.js",
"scripts": {
"pkg": "pkg -t node12-linux-x64,node12-win-x64 --out-path ./target . && node install.js",
"pkg": "pkg -t node16-linux-x64,node16-win-x64 --out-path ./target . && node install.js",
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js",
"start-prod": "NODE_ENV=production nodemon server.js"

View File

@ -71,7 +71,7 @@
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>v16.13.1</nodeVersion>
<nodeVersion>v16.15.1</nodeVersion>
<yarnVersion>v1.22.17</yarnVersion>
</configuration>
</execution>

View File

@ -14,23 +14,18 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
RUN echo 'networkaddress.cache.ttl=60' >> /etc/java-11-openjdk/security/java.security
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-node.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-node.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chown -R ${pkg.user}:${pkg.user} /tmp
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
RUN echo 'networkaddress.cache.ttl=60' >> /etc/java-11-openjdk/security/java.security \
&& chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-node.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chown -R ${pkg.user}:${pkg.user} /tmp && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,37 +14,9 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
RUN apt-get update
RUN apt-get install -y curl nmap procps gnupg2
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' | tee --append /etc/apt/sources.list.d/pgdg.list > /dev/null
RUN curl -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN echo 'deb http://downloads.apache.org/cassandra/debian 40x main' | tee --append /etc/apt/sources.list.d/cassandra.list > /dev/null
RUN curl -L https://downloads.apache.org/cassandra/KEYS | apt-key add -
ENV PG_MAJOR=12
RUN apt-get update
RUN apt-get install -y cassandra cassandra-tools postgresql-12
RUN update-rc.d cassandra disable
RUN update-rc.d postgresql disable
RUN sed -i.old '/ulimit/d' /etc/init.d/cassandra
COPY logback.xml ${pkg.name}.conf start-db.sh stop-db.sh start-tb.sh upgrade-tb.sh install-tb.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb.sh /usr/bin \
&& mv /tmp/upgrade-tb.sh /usr/bin \
&& mv /tmp/install-tb.sh /usr/bin \
&& mv /tmp/start-db.sh /usr/bin \
&& mv /tmp/stop-db.sh /usr/bin
RUN dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN mv /tmp/logback.xml ${pkg.installFolder}/conf \
&& mv /tmp/${pkg.name}.conf ${pkg.installFolder}/conf
ENV DATA_FOLDER=/data
@ -69,23 +41,43 @@ ENV PATH=$PATH:/usr/lib/postgresql/$PG_MAJOR/bin
ENV PGLOG=/var/log/postgres
ENV CASSANDRA_LOG=/var/log/cassandra
COPY logback.xml ${pkg.name}.conf start-db.sh stop-db.sh start-tb.sh upgrade-tb.sh install-tb.sh ${pkg.name}.deb /tmp/
RUN apt-get update \
&& apt-get install -y curl nmap procps gnupg2 \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ $(. /etc/os-release && echo -n $VERSION_CODENAME)-pgdg main" | tee --append /etc/apt/sources.list.d/pgdg.list > /dev/null \
&& curl -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& echo 'deb http://downloads.apache.org/cassandra/debian 40x main' | tee --append /etc/apt/sources.list.d/cassandra.list > /dev/null \
&& curl -L https://downloads.apache.org/cassandra/KEYS | apt-key add - \
&& apt-get update \
&& apt-get install -y cassandra cassandra-tools postgresql-12 \
&& update-rc.d cassandra disable \
&& update-rc.d postgresql disable \
&& sed -i.old '/ulimit/d' /etc/init.d/cassandra \
&& chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb.sh /usr/bin \
&& mv /tmp/upgrade-tb.sh /usr/bin \
&& mv /tmp/install-tb.sh /usr/bin \
&& mv /tmp/start-db.sh /usr/bin \
&& mv /tmp/stop-db.sh /usr/bin \
&& dpkg -i /tmp/${pkg.name}.deb \
&& rm /tmp/${pkg.name}.deb \
&& (systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) \
&& mv /tmp/logback.xml ${pkg.installFolder}/conf \
&& mv /tmp/${pkg.name}.conf ${pkg.installFolder}/conf \
# postgres config
RUN mkdir -p $PGLOG
RUN chown -R ${pkg.user}:${pkg.user} $PGLOG
RUN chown -R ${pkg.user}:${pkg.user} /var/log/postgresql
RUN chown -R ${pkg.user}:${pkg.user} /var/run/postgresql
&& mkdir -p $PGLOG \
&& chown -R ${pkg.user}:${pkg.user} $PGLOG \
&& chown -R ${pkg.user}:${pkg.user} /var/log/postgresql \
&& chown -R ${pkg.user}:${pkg.user} /var/run/postgresql \
# cassandra config
RUN rm -rf /var/lib/cassandra
RUN chmod a+w /var/lib
RUN chown -R ${pkg.user}:${pkg.user} $CASSANDRA_LOG
RUN mkdir -p $DATA_FOLDER
RUN chown -R ${pkg.user}:${pkg.user} $DATA_FOLDER
RUN chown -R ${pkg.user}:${pkg.user} /var/log/${pkg.name}
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& rm -rf /var/lib/cassandra \
&& chmod a+w /var/lib \
&& chown -R ${pkg.user}:${pkg.user} $CASSANDRA_LOG \
&& mkdir -p $DATA_FOLDER \
&& chown -R ${pkg.user}:${pkg.user} $DATA_FOLDER \
&& chown -R ${pkg.user}:${pkg.user} /var/log/${pkg.name} \
&& chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -24,16 +24,23 @@ if [ ! -d ${PGDATA} ]; then
${PG_CTL} initdb
fi
exec setsid nohup postgres >> ${PGLOG}/postgres.log 2>&1 &
echo "Starting Postgresql..."
${PG_CTL} start
RETRIES="${PG_ISREADY_RETRIES:-300}"
until pg_isready -U ${pkg.user} -d postgres --quiet || [ $RETRIES -eq 0 ]
do
echo "Connecting to Postgres, $((RETRIES--)) attempts left..."
sleep 1
done
if [ ! -f ${firstlaunch} ]; then
sleep 2
while ! psql -U ${pkg.user} -d postgres -c "CREATE DATABASE thingsboard"
do
sleep 1
done
echo "Creating database..."
psql -U ${pkg.user} -d postgres -c "CREATE DATABASE thingsboard"
fi
echo "Postgresql is ready"
cassandra_data_dir=${CASSANDRA_DATA}
cassandra_data_link=/var/lib/cassandra

View File

@ -14,33 +14,9 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
RUN apt-get update
RUN apt-get install -y curl gnupg2
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' | tee --append /etc/apt/sources.list.d/pgdg.list > /dev/null
RUN curl -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
ENV PG_MAJOR 12
RUN apt-get update
RUN apt-get install -y postgresql-12
RUN update-rc.d postgresql disable
COPY logback.xml ${pkg.name}.conf start-db.sh stop-db.sh start-tb.sh upgrade-tb.sh install-tb.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb.sh /usr/bin \
&& mv /tmp/upgrade-tb.sh /usr/bin \
&& mv /tmp/install-tb.sh /usr/bin \
&& mv /tmp/start-db.sh /usr/bin \
&& mv /tmp/stop-db.sh /usr/bin
RUN dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN mv /tmp/logback.xml ${pkg.installFolder}/conf \
&& mv /tmp/${pkg.name}.conf ${pkg.installFolder}/conf
ENV DATA_FOLDER=/data
@ -55,18 +31,35 @@ ENV SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
ENV SPRING_DATASOURCE_USERNAME=${pkg.user}
ENV SPRING_DATASOURCE_PASSWORD=postgres
ENV PGLOG=/var/log/postgres
RUN mkdir -p $PGLOG
RUN chown -R ${pkg.user}:${pkg.user} $PGLOG
RUN chown -R ${pkg.user}:${pkg.user} /var/run/postgresql
COPY logback.xml ${pkg.name}.conf start-db.sh stop-db.sh start-tb.sh upgrade-tb.sh install-tb.sh ${pkg.name}.deb /tmp/
RUN mkdir -p /data
RUN chown -R ${pkg.user}:${pkg.user} /data
RUN chown -R ${pkg.user}:${pkg.user} /var/log/${pkg.name}
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
RUN apt-get update \
&& apt-get install -y curl gnupg2 \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ $(. /etc/os-release && echo -n $VERSION_CODENAME)-pgdg main" | tee --append /etc/apt/sources.list.d/pgdg.list > /dev/null \
&& curl -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& apt-get update \
&& apt-get install -y postgresql-12 \
&& update-rc.d postgresql disable \
&& chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb.sh /usr/bin \
&& mv /tmp/upgrade-tb.sh /usr/bin \
&& mv /tmp/install-tb.sh /usr/bin \
&& mv /tmp/start-db.sh /usr/bin \
&& mv /tmp/stop-db.sh /usr/bin \
&& dpkg -i /tmp/${pkg.name}.deb \
&& rm /tmp/${pkg.name}.deb \
&& (systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) \
&& mv /tmp/logback.xml ${pkg.installFolder}/conf \
&& mv /tmp/${pkg.name}.conf ${pkg.installFolder}/conf \
&& mkdir -p $PGLOG \
&& chown -R ${pkg.user}:${pkg.user} $PGLOG \
&& chown -R ${pkg.user}:${pkg.user} /var/run/postgresql \
&& mkdir -p /data \
&& chown -R ${pkg.user}:${pkg.user} /data \
&& chown -R ${pkg.user}:${pkg.user} /var/log/${pkg.name} \
&& chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -24,12 +24,19 @@ if [ ! -d ${PGDATA} ]; then
${PG_CTL} initdb
fi
exec setsid nohup postgres >> ${PGLOG}/postgres.log 2>&1 &
echo "Starting Postgresql..."
${PG_CTL} start
RETRIES="${PG_ISREADY_RETRIES:-300}"
until pg_isready -U ${pkg.user} -d postgres --quiet || [ $RETRIES -eq 0 ]
do
echo "Connecting to Postgres, $((RETRIES--)) attempts left..."
sleep 1
done
if [ ! -f ${firstlaunch} ]; then
sleep 2
while ! psql -U ${pkg.user} -d postgres -c "CREATE DATABASE thingsboard"
do
sleep 1
done
fi
echo "Creating database..."
psql -U ${pkg.user} -d postgres -c "CREATE DATABASE thingsboard"
fi
echo "Postgresql is ready"

View File

@ -46,6 +46,8 @@ source "${CONF_FOLDER}/${configfile}"
echo "Starting ThingsBoard installation ..."
set -e
java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication \
-Dinstall.load_demo=${loadDemo} \
-Dspring.jpa.hibernate.ddl-auto=none \

View File

@ -25,15 +25,18 @@ firstlaunch=${DATA_FOLDER}/.firstlaunch
source "${CONF_FOLDER}/${configfile}"
if [ ! -f ${firstlaunch} ]; then
install-tb.sh --loadDemo
touch ${firstlaunch}
install-tb.sh --loadDemo && touch ${firstlaunch}
fi
echo "Starting ThingsBoard ..."
if [ -f ${firstlaunch} ]; then
echo "Starting ThingsBoard ..."
java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardServerApplication \
-Dspring.jpa.hibernate.ddl-auto=none \
-Dlogging.config=${CONF_FOLDER}/logback.xml \
org.springframework.boot.loader.PropertiesLauncher
java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.ThingsboardServerApplication \
-Dspring.jpa.hibernate.ddl-auto=none \
-Dlogging.config=${CONF_FOLDER}/logback.xml \
org.springframework.boot.loader.PropertiesLauncher
else
echo "ERROR: ThingsBoard is not installed"
fi
stop-db.sh

View File

@ -160,6 +160,7 @@
<verbose>true</verbose>
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
<contextDirectory>${project.build.directory}/docker-postgres</contextDirectory>
<noCache>true</noCache>
</configuration>
</execution>
<execution>
@ -186,6 +187,7 @@
<verbose>true</verbose>
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
<contextDirectory>${project.build.directory}/docker-cassandra</contextDirectory>
<noCache>true</noCache>
</configuration>
</execution>
<execution>

View File

@ -14,19 +14,16 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-coap-transport.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-coap-transport.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& mv /tmp/start-tb-coap-transport.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,19 +14,16 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-http-transport.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-http-transport.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& mv /tmp/start-tb-http-transport.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,19 +14,16 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-lwm2m-transport.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-lwm2m-transport.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& mv /tmp/start-tb-lwm2m-transport.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,19 +14,16 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-mqtt-transport.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-mqtt-transport.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& mv /tmp/start-tb-mqtt-transport.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,19 +14,16 @@
# limitations under the License.
#
FROM thingsboard/openjdk11
FROM thingsboard/openjdk11:bullseye-slim
COPY start-tb-snmp-transport.sh ${pkg.name}.deb /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-tb-snmp-transport.sh /usr/bin
RUN yes | dpkg -i /tmp/${pkg.name}.deb
RUN rm /tmp/${pkg.name}.deb
RUN systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
RUN chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
&& mv /tmp/start-tb-snmp-transport.sh /usr/bin && \
(yes | dpkg -i /tmp/${pkg.name}.deb) && \
rm /tmp/${pkg.name}.deb && \
(systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :) && \
chmod 555 ${pkg.installFolder}/bin/${pkg.name}.jar
USER ${pkg.user}

View File

@ -14,16 +14,13 @@
# limitations under the License.
#
FROM node:16.13.1-bullseye-slim
COPY start-web-ui.sh /tmp/
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-web-ui.sh /usr/bin
FROM node:16.15.1-bullseye-slim
ENV NODE_ENV production
ENV DOCKER_MODE true
COPY start-web-ui.sh /tmp/
WORKDIR ${pkg.installFolder}
COPY ["src/package.json", "src/yarn.lock", "./"]
@ -33,9 +30,10 @@ COPY package/linux/conf ./config
COPY web ./web
COPY src/server.js ./
RUN chown -R node:node ${pkg.installFolder}
RUN yarn install --production && yarn cache clean --all
RUN chmod a+x /tmp/*.sh \
&& mv /tmp/start-web-ui.sh /usr/bin \
&& chown -R node:node ${pkg.installFolder} \
&& yarn install --production && yarn cache clean --all
USER node

View File

@ -6,7 +6,7 @@
"main": "server.js",
"bin": "server.js",
"scripts": {
"pkg": "pkg -t node12-linux-x64,node12-win-x64 --out-path ./target . && node install.js",
"pkg": "pkg -t node16-linux-x64,node16-win-x64 --out-path ./target . && node install.js",
"test": "echo \"Error: no test specified\" && exit 1",
"start": "WEB_FOLDER=./target/web nodemon server.js",
"start-prod": "NODE_ENV=production nodemon server.js"

View File

@ -80,7 +80,7 @@
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>v16.13.1</nodeVersion>
<nodeVersion>v16.15.1</nodeVersion>
<yarnVersion>v1.22.17</yarnVersion>
</configuration>
</execution>

View File

@ -56,7 +56,7 @@
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>v16.13.0</nodeVersion>
<nodeVersion>v16.15.1</nodeVersion>
<yarnVersion>v1.22.17</yarnVersion>
</configuration>
</execution>