openhab-distro icon indicating copy to clipboard operation
openhab-distro copied to clipboard

[4.2.0] Addons fail to install due to Apache http OSGI components failing to download

Open mbronk opened this issue 6 months ago • 7 comments

OH 4.2.0 fails a 🧹 clean installation w/ pre-populated addons.cfg with the following error:

Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13

Causing none of the addons to install properly. Subsequent install attempts fail as well. Possibly some ordering/dependency issue between addons and core and may be related to pollytts

Full startup log - fresh instance, vanilla state (click to expand)
18:16:34.587 [INFO ] [org.openhab.core.Activator           ] - Starting openHAB 4.2.0 (Release Build)                                                                                                                           [174/12315]
18:16:42.163 [INFO ] [b.core.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
18:16:52.377 [INFO ] [re.automation.internal.RuleEngineImpl] - Rule engine started.
org.apache.karaf.features.internal.util.MultiException: Error:
        Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13
        Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:91)
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:474)
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:469)
        at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:223)
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
        Suppressed: java.io.IOException: Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
                ... 3 more
        Caused by: java.io.IOException: Error resolving artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13: [Could not find artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13 in openhab (https://openhab.jfrog.io/o
penhab/libs-release/)]
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
                at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:52)
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13 in openhab (https://openhab.jfrog.io/openhab/libs-release/)
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                        ... 11 more
        Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:431)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                ... 11 more
        Suppressed: java.io.IOException: Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
                ... 3 more
        Caused by: java.io.IOException: Error resolving artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13: [Could not find artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13 in openhab (https://openhab.jfrog.io/openh
ab/libs-release/)]
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
                at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:52)
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13 in openhab (https://openhab.jfrog.io/openhab/libs-release/)
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                        ... 11 more
        Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:431)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                ... 11 more
18:17:01.866 [ERROR] [.core.karaf.internal.FeatureInstaller] - Failed installing 'openhab-binding-exec, openhab-binding-volvooncall, openhab-binding-bluetooth, openhab-binding-airquality, openhab-voice-pollytts, openhab-binding-network
, openhab-automation-jsscripting, openhab-binding-chromecast, openhab-binding-mqtt, openhab-transformation-map, openhab-binding-ipcamera, openhab-binding-homematic, openhab-binding-systeminfo, openhab-transformation-jinja, openhab-tran
sformation-scale, openhab-binding-samsungtv, openhab-binding-upnpcontrol, openhab-binding-zway, openhab-binding-wled, openhab-binding-spotify, openhab-binding-lirc, openhab-transformation-regex, openhab-transformation-jsonpath, openhab
-binding-zwave, openhab-binding-miio, openhab-automation-jythonscripting, openhab-persistence-rrd4j, openhab-ui-basic, openhab-binding-ntp, openhab-binding-openweathermap, openhab-binding-astro, openhab-binding-snmp': Error:
        Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13
        Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
org.apache.karaf.features.internal.util.MultiException: Error:
        Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
        Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:91)
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:474)
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:469)
        at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:223)
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
        Suppressed: java.io.IOException: Error downloading mvn:org.apache.httpcomponents/httpcore-osgi/4.4.13
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
                ... 3 more
        Caused by: java.io.IOException: Error resolving artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13: [Could not find artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13 in openhab (https://openhab.jfrog.io/openh
ab/libs-release/)]
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
                at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:52)
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13 in openhab (https://openhab.jfrog.io/openhab/libs-release/)
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                        at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                        ... 11 more
        Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.apache.httpcomponents:httpcore-osgi:jar:4.4.13
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:431)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
                ... 11 more
        Suppressed: java.io.IOException: Error downloading mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
                ... 3 more
        Caused by: java.io.IOException: Error resolving artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13: [Could not find artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13 in openhab (https://openhab.jfrog.io/o
penhab/libs-release/)]
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
                at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
                at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:52)
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.httpcomponents:httpclient-osgi:jar:4.5.13 in openhab (https://openhab.jfrog.io/openhab/libs-release/)
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)

Isolation

  1. Looks to be introduced in 4.2.0 (vsn 4.1.3 is confirmed working)
  2. Does only reproduce if addons are installed from online source (no addons.kar downloaded)
  3. Repro rate: stable 100% (look up the Dockerfile below)

Possible cause:

Did not perform extensive testing (this may be a false lead❗), but on the surface it looks related to pollytts and changes introduced in openhab/openhab-addons#16294. Unsure if pollytts is the component at fault though, or just victim to other changes or dependency mix w/ other addons.


To reproduce

Using the Dockerfile listed below:

openHAB version Addons source Command Result
4.2.0 Online docker run --name openhab -p 8080:8080 --rm -it $(docker build -q .) ⚠️ Failure
4.2.0 Bundled (addons.kar) docker run --name openhab -p 8080:8080 --rm -it $(docker build -q . --build-arg DOWNLOAD_ADDONS=1) OK
4.1.3 Online docker run --name openhab -p 8080:8080 --rm -it $(docker build -q . --build-arg OPENHAB_VERSION=4.1.3) OK
4.1.3 Bundled (addons.kar) docker run --name openhab -p 8080:8080 --rm -it $(docker build -q . --build-arg OPENHAB_VERSION=4.1.3 --build-arg DOWNLOAD_ADDONS=1) OK

Dockerfile reproducing the issue (ref. table above for exact commands used)

   (👆 click to expand...)
FROM azul/zulu-openjdk:17-jre-headless-latest
RUN apt-get -qq update && \
    apt-get -qq -y --no-install-recommends install wget unzip supervisor -y 


ARG OPENHAB_VERSION="4.2.0"

RUN mkdir -p /opt/openhab && \
    wget -O /tmp/openhab-download.zip https://github.com/openhab/openhab-distro/releases/download/${OPENHAB_VERSION}/openhab-${OPENHAB_VERSION}.zip && \
    unzip /tmp/openhab-download.zip -d/opt/openhab

ARG DOWNLOAD_ADDONS=0
RUN /bin/bash -c "if [[ ${DOWNLOAD_ADDONS} -eq 1 ]]; then wget -P /opt/openhab/addons https://github.com/openhab/openhab-distro/releases/download/${OPENHAB_VERSION}/openhab-addons-${OPENHAB_VERSION}.kar; fi"

# HACK: Using supervisor just to execute 2 processes (openhab and its console/log tail) in parallel for quick&dirty checks.
#       This should be replaced by proper orchestration or at least a dedicated entrypoint script (but... since it works...)
COPY <<EOF /etc/supervisor/supervisord.conf
[supervisord]
nodaemon=true
logfile=/dev/stdout
logfile_maxbytes=0
pidfile=/tmp/supervisord.pid

[program:openhab]
user=openhab
command=/opt/openhab/runtime/bin/karaf daemon
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:openhab_logs]
command=/bin/bash -c 'sleep 10 && /opt/openhab/runtime/bin/client -p habopen -- "openhab:users add admin admin administrator; log:tail"'
startsecs=10
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
EOF

# Creating empty Overview page just for the MainUI to skip the 1st time setup wizard
COPY <<EOF /opt/openhab/userdata/jsondb/uicomponents_ui_page.json
{
  "overview": {
    "class": "org.openhab.core.ui.components.RootUIComponent",
    "value": {
      "uid": "overview",
      "tags": [],
      "props": {
        "parameters": [],
        "parameterGroups": []
      },
      "timestamp": "Aug 6, 2024, 11:03:28 AM",
      "component": "oh-layout-page",
      "config": {
        "label": "Overview"
      },
      "slots": {
        "default": []
      }
    }
  }
}
EOF

COPY <<EOF /opt/openhab/conf/services/addons.cfg
automation = jythonscripting, jsscripting
binding = systeminfo, zwave, zway, bluetooth, homematic, network, exec, ntp, astro, airquality, lirc, openweathermap, samsungtv, snmp, spotify, upnpcontrol, mqtt, miio, volvooncall, chromecast, wled, ipcamera
#misc = openhabcloud
persistence = rrd4j
transformation = map,regex,jsonpath,jinja,scale
ui = basic
voice = pollytts

EOF

RUN groupadd --gid 1000 openhab && \
    useradd --uid 1000 --gid 1000 openhab && \
    chown -R openhab:openhab /opt/openhab

USER openhab
EXPOSE 8080 8443 8101 5007
ENTRYPOINT ["/usr/bin/supervisord"]

Note: the Dockerfile above can be greatly minimized to isolate, but left as-is b/c this is the exact flavor I've used to test with. BTW. if this confirmed as an issue, I'd suggest adding a similar rudimentary test to the CI (include all addons, scan for them installing correctly).

mbronk avatar Aug 06 '24 18:08 mbronk