dashboardjavacloudcoapiotiot-analyticsiot-platformiot-solutionskafkalwm2mmicroservicesmiddlewaremqttnettyplatformsnmpthingsboardvisualizationwebsocketswidgets
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.8 KiB
79 lines
2.8 KiB
#
|
|
# SPDX-FileCopyrightText: Copyright The Thingsboard Authors
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
FROM ${docker.base.image}
|
|
|
|
ENV PG_MAJOR 12
|
|
|
|
ENV DATA_FOLDER=/data
|
|
|
|
ENV HTTP_BIND_PORT=9090
|
|
ENV DATABASE_TS_TYPE=sql
|
|
|
|
ENV PGDATA=/data/db
|
|
ENV PATH=$PATH:/usr/lib/postgresql/$PG_MAJOR/bin
|
|
|
|
ENV SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver
|
|
ENV SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
|
|
ENV SPRING_DATASOURCE_USERNAME=${pkg.user}
|
|
|
|
ENV PGLOG=/var/log/postgres
|
|
|
|
# For SVG renderer Debian Trixie slim fonts should be installed explicitly
|
|
RUN echo "Previously installed font libraries:" \
|
|
&& (dpkg -l | grep -E 'font|dejavu|harfbuzz' || echo " (none)") \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
libharfbuzz0b fontconfig fonts-dejavu-core \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& echo "Current fonts libraries:" \
|
|
&& (dpkg -l | grep -E 'font|dejavu|harfbuzz') \
|
|
&& echo "Font config list:" \
|
|
&& fc-list && test -n "$(fc-list)" \
|
|
&& (fc-list | grep -i dejavu) \
|
|
&& echo "Harfbuzz library test with ldconfig:" \
|
|
&& (ldconfig -p | grep harfbuzz)
|
|
|
|
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 --no-install-recommends wget gnupg2 \
|
|
&& mkdir -p /etc/apt/keyrings \
|
|
&& wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | gpg --dearmor -o /etc/apt/keyrings/postgresql.gpg \
|
|
&& echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(. /etc/os-release && echo -n $VERSION_CODENAME)-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list > /dev/null \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends postgresql-${PG_MAJOR} \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& apt-get purge -y --auto-remove \
|
|
&& 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}
|
|
|
|
EXPOSE 9090
|
|
EXPOSE 1883
|
|
EXPOSE 5683/udp
|
|
EXPOSE 5685/udp
|
|
EXPOSE 5686/udp
|
|
|
|
VOLUME ["/data"]
|
|
|
|
CMD ["start-tb.sh"]
|
|
|