Thingsboard: With image thingsboard/tb-postgres:latest, thingsboard_3.1 docker failed to start

Created on 21 Aug 2020  Â·  14Comments  Â·  Source: thingsboard/thingsboard

I download the latest thingsboad image using "docker pull thingsboard/tb-postgres".
Then I run the command given by the dockerhub,
"docker run -it -p 8080:9090 -p 1883:1883 -p 5683:5683/udp -v ~/.mytb-data:/data -v ~/.mytb-logs:/var/logs/thingsboard --name mytb --restart always thingsboard/tb-postgres".

But my thingsboard start failed. The previous version of thingsboard docker has been installed on my system, and it can start normally. Now I deleted the previous docker and image, downloaded the latest image, but docker cannot start
Below is the errors:
mkdir: cannot create directory ‘/data/db’: Permission denied, The files belonging to this database system will be owned by user "thingsboard"., This user must also own the server process., , The database cluster will be initialized with locale "C.UTF-8"., The default database encoding has accordingly been set to "UTF8"., The default text search configuration will be set to "english"., , Data page checksums are disabled., , initdb: could not create directory "/data/db": Permission denied, pg_ctl: database system initialization failed, psql: could not connect to server: No such file or directory, Is the server running locally and accepting, connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?, creating directory /data/db ... Starting ThingsBoard installation ..., OpenJDK 64-Bit Server VM warning: Cannot open file /var/log/thingsboard/gc.log due to Permission denied, , 02:19:29,147 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml], 02:19:29,148 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy], 02:19:29,149 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/usr/share/thingsboard/conf/logback.xml], 02:19:29,403 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set, 02:19:29,430 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/usr/share/thingsboard/conf/logback.xml] , 02:19:29,430 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 10 seconds, 02:19:29,458 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender], 02:19:29,467 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [fileLogAppender], 02:19:29,487 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2052001577 - setting totalSizeCap to 3 GB, 02:19:29,508 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2052001577 - Archive files will be limited to [100 MB] each., 02:19:29,556 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2052001577 - No compression will be used, 02:19:29,558 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@2052001577 - Will use the pattern /var/log/thingsboard/thingsboard.%d{yyyy-MM-dd}.%i.log for the active file, 02:19:29,561 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@45283ce2 - The date pattern is 'yyyy-MM-dd' from file name pattern '/var/log/thingsboard/thingsboard.%d{yyyy-MM-dd}.%i.log'., 02:19:29,561 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@45283ce2 - Roll-over at midnight., 02:19:29,564 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@45283ce2 - Setting initial period to Fri Aug 21 02:19:29 UTC 2020, 02:19:29,566 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property, 02:19:29,591 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[fileLogAppender] - Active log file name: /var/log/thingsboard/thingsboard.log, 02:19:29,591 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[fileLogAppender] - File property is set to [/var/log/thingsboard/thingsboard.log], 02:19:29,592 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[fileLogAppender] - openFile(/var/log/thingsboard/thingsboard.log,true) call failed. java.io.FileNotFoundException: /var/log/thingsboard/thingsboard.log (Permission denied), at java.io.FileNotFoundException: /var/log/thingsboard/thingsboard.log (Permission denied), at at java.io.FileOutputStream.open0(Native Method), at at java.io.FileOutputStream.open(FileOutputStream.java:270), at at java.io.FileOutputStream.<init>(FileOutputStream.java:213), at at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26), at at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204), at at ch.qos.logback.core.FileAppender.start(FileAppender.java:127), at at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100), at at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90), at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309), at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193), at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179), at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62), at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165), at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152), at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110), at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53), at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75), at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150), at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84), at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55), at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:129), at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108), at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:302), at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:276), at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:288), at at org.thingsboard.server.ThingsboardInstallApplication.<clinit>(ThingsboardInstallApplication.java:27), at at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), at at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), at at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), at at java.lang.reflect.Method.invoke(Method.java:498), at at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48), at at org.springframework.boot.loader.Launcher.launch(Launcher.java:87), at at org.springframework.boot.loader.Launcher.launch(Launcher.java:51), at at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:597), 02:19:29,592 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender], 02:19:29,594 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT], 02:19:29,594 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property, 02:19:29,595 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.thingsboard.server] to INFO, 02:19:29,595 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.microsoft.azure.servicebus.primitives.CoreMessageReceiver] to OFF, 02:19:29,596 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO, 02:19:29,596 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [fileLogAppender] to Logger[ROOT], 02:19:29,596 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT], 02:19:29,596 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration., 02:19:29,597 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2077d4de - Registering current configuration as safe fallback point, , Logging system failed to initialize using configuration from '/usr/share/thingsboard/bin/install/logback.xml', java.lang.IllegalStateException: Logback configuration error detected: , ERROR in ch.qos.logback.core.rolling.RollingFileAppender[fileLogAppender] - openFile(/var/log/thingsboard/install.log,true) call failed. java.io.FileNotFoundException: /var/log/thingsboard/install.log (Permission denied), at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:169), at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66), at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57), at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:118), at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:318), at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:288), at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246), at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:223), at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172), at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165), at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139), at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127), at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76), at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53), at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345), at org.springframework.boot.SpringApplication.run(SpringApplication.java:308), at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140), at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:203), at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:114), at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:71), at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172), at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165), at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139), at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127), at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76), at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53), at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345), at org.springframework.boot.SpringApplication.run(SpringApplication.java:308), at org.thingsboard.server.ThingsboardInstallApplication.main(ThingsboardInstallApplication.java:43), at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), at java.lang.reflect.Method.invoke(Method.java:498), at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48), at org.springframework.boot.loader.Launcher.launch(Launcher.java:87), at org.springframework.boot.loader.Launcher.launch(Launcher.java:51), at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:597), java.lang.IllegalStateException: Logback configuration error detected: , ERROR in ch.qos.logback.core.rolling.RollingFileAppender[fileLogAppender] - openFile(/var/log/thingsboard/install.log,true) call failed. java.io.FileNotFoundException: /var/log/thingsboard/install.log (Permission denied), /usr/bin/install-tb.sh: line 56: /data/.upgradeversion: Permission denied, touch: cannot touch '/data/.firstlaunch': Permission denied, Starting ThingsBoard ..., OpenJDK 64-Bit Server VM warning: Cannot open file /var/log/thingsboard/gc.log due to Permission denied,

question

Most helpful comment

@qwyinxiang please try following docker-compose.yml file.

version: '2.2'
services:
  mytbpe:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:8080"
      - "1883:1883"
      - "5683:5683/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
      SPRING_DATASOURCE_USERNAME: postgres
      SPRING_DATASOURCE_PASSWORD: postgres
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard
  postgres:
    restart: always
    image: "postgres:11.6"
    ports:
    - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - ~/.mytb-data/db:/var/lib/postgresql/data

All 14 comments

Please make sure you have executed following commands:
sudo chown -R 799:799 ~/.mytbpe-data
sudo chown -R 799:799 ~/.mytbpe-logs

I have just executed the chown -R 799:799.
There is still error occures:
org.postgresql.util.PSQLException: FATAL: database "thingsboard" does not exist
2020-08-24 03:30:27,713 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] 2020-08-24 03:30:27,827 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.4.12.Final 2020-08-24 03:30:28,089 [main] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.0.Final} 2020-08-24 03:30:28,234 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 2020-08-24 03:30:29,289 [main] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization. org.postgresql.util.PSQLException: FATAL: database "thingsboard" does not exist at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455) at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2586) at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:113) at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:222) at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:52) at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:216) at org.postgresql.Driver.makeConnection(Driver.java:404) at org.postgresql.Driver.connect(Driver.java:272) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) at com.zaxxer.hikari.HikariDataSource$$FastClassBySpringCGLIB$$eeb1ae86.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) at com.zaxxer.hikari.HikariDataSource$$EnhancerBySpringCGLIB$$1b2c4ead.getConnection(<generated>) at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:118) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1202) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1233) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58)

@CooL16 ,I used the 3.0.1 image to build the thingsboard container before, and it can start normally. Then I deleted the 3.0.1 image and container and the file directory mounted to the host, and re-downloaded the 3.1.0 image build The thingsboard container, the error reported is that the thingsboard database does not exist.

Same problem to me... the error reported that there is not database.

@qwyinxiang please try to proceed with this docker-compose.yml file:

version: '2.2'
services:
  mytbpe:
    restart: always
    image: "store/thingsboard/tb-pe:3.1.0PE"
    ports:
      - "8080:8080"
      - "1883:1883"
      - "5683:5683/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
      TB_LICENSE_SECRET: PUT_YOUR_LICENSE_SECRET_HERE
      TB_LICENSE_INSTANCE_DATA_FILE: /data/license.data
    volumes:
      - ~/.mytbpe-data:/data
      - ~/.mytbpe-logs:/var/log/thingsboard
  postgres:
    restart: always
    image: "postgres:11.6"
    ports:
    - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - ~/.mytbpe-data/db:/var/lib/postgresql/data

I am sorry, I used the thingsboard CE, I don't have PE.

I'm also using Thingsboard CE.

@qwyinxiang please try following docker-compose.yml file.

version: '2.2'
services:
  mytbpe:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:8080"
      - "1883:1883"
      - "5683:5683/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
      SPRING_DATASOURCE_USERNAME: postgres
      SPRING_DATASOURCE_PASSWORD: postgres
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard
  postgres:
    restart: always
    image: "postgres:11.6"
    ports:
    - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - ~/.mytb-data/db:/var/lib/postgresql/data

...
...
mytb_1 | pg_ctl: could not open PID file "/data/db/postmaster.pid": Permission denied
...
...

@AngeLinuX99
Please execute following commands:

$ mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
$ mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs

I do it, but error persists

log.txt

@AngeLinuX99 try to remove mytb-data & mytb-logs folder and recreate it with commands that I provided above

Yes !!! Looks better now !!

Thanks !

@CooL16 in your docker-compose.yml is wrong tomcat port

ports:
- "8080:8080 9090"

also will be nice to update doc
https://thingsboard.io/docs/user-guide/install/docker/?ubuntuThingsboardQueue=inmemory

Was this page helpful?
0 / 5 - 0 ratings