Hi all!
I’m currently trying to install Docker on my unraid server and seem to be having a bit of an issue. I followed all of the instructions, and it seems that most of the containers are stable/communicating except for the penpot-backend container.
Once running the Docker up command the backend container runs for about 20 seconds then exits, restarts, and repeats. After some investigation, I pulled the following log from the backend container.
Any ideas on what the fix might be?
penpot-backend-1 | + exec /opt/jdk/bin/java -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -Dlog4j2.configurationFile=log4j2.xml -XX:-OmitStackTraceInFastThrow -Dpolyglot.engine.WarnInterpreterOnly=false --enable-preview -jar penpot.jar -m app.main
penpot-backend-1 | [2025-01-15 23:38:50.670] I app.metrics - action="initialize metrics"
penpot-backend-1 | [2025-01-15 23:38:50.687] I app.db - hint="initialize connection pool", name="main", uri="postgresql://penpot-postgres/penpot", read-only=false, credentials=true, min-size=0, max-size=60
penpot-backend-1 | [2025-01-15 23:38:50.709] I app.migrations - hint="running migrations", module=:app.migrations/migrations
penpot-backend-1 | SUMMARY:
penpot-backend-1 | → clojure.lang.ExceptionInfo: Assertion failed on key :app.setup/props when building system (core.cljc:540)
penpot-backend-1 | → java.lang.AssertionError: Assert failed: expected valid key string (setup.clj:78)
penpot-backend-1 | DETAIL:
penpot-backend-1 | → clojure.lang.ExceptionInfo: Assertion failed on key :app.setup/props when building system (core.cljc:540)
penpot-backend-1 | at: integrant.core$wrap_assert_exception.invokeStatic(core.cljc:540)
penpot-backend-1 | integrant.core$wrap_assert_exception.invoke(core.cljc:539)
penpot-backend-1 | integrant.core$wrapped_assert_key.invokeStatic(core.cljc:550)
penpot-backend-1 | integrant.core$wrapped_assert_key.invoke(core.cljc:547)
penpot-backend-1 | integrant.core$build_key.invokeStatic(core.cljc:425)
penpot-backend-1 | integrant.core$build_key.invoke(core.cljc:423)
penpot-backend-1 | clojure.core$partial$fn__5931.invoke(core.clj:2656)
penpot-backend-1 | clojure.core.protocols$fn__8275.invokeStatic(protocols.clj:167)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:123)
penpot-backend-1 | clojure.core.protocols$fn__8229$G__8224__8238.invoke(protocols.clj:19)
penpot-backend-1 | clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
penpot-backend-1 | clojure.core.protocols$fn__8262.invokeStatic(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols$fn__8203$G__8198__8216.invoke(protocols.clj:13)
penpot-backend-1 | clojure.core$reduce.invokeStatic(core.clj:6965)
penpot-backend-1 | clojure.core$reduce.invoke(core.clj:6947)
penpot-backend-1 | integrant.core$build.invokeStatic(core.cljc:453)
penpot-backend-1 | integrant.core$build.invoke(core.cljc:430)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:675)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:672)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | app.main$start$fn__48565.invoke(main.clj:551)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:154)
penpot-backend-1 | clojure.lang.AFn.applyTo(AFn.java:144)
penpot-backend-1 | clojure.lang.Var.alterRoot(Var.java:310)
penpot-backend-1 | clojure.core$alter_var_root.invokeStatic(core.clj:5563)
penpot-backend-1 | clojure.core$alter_var_root.doInvoke(core.clj:5558)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:428)
penpot-backend-1 | app.main$start.invokeStatic(main.clj:545)
penpot-backend-1 | app.main$start.invoke(main.clj:541)
penpot-backend-1 | app.main$_main.invokeStatic(main.clj:611)
penpot-backend-1 | app.main$_main.doInvoke(main.clj:603)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:400)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:152)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:135)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.core$apply.invokeStatic(core.clj:667)
penpot-backend-1 | clojure.main$main_opt.invokeStatic(main.clj:515)
penpot-backend-1 | clojure.main$main_opt.invoke(main.clj:511)
penpot-backend-1 | clojure.main$main.invokeStatic(main.clj:665)
penpot-backend-1 | clojure.main$main.doInvoke(main.clj:617)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:140)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.main.main(main.java:40)
penpot-backend-1 | dt: {:reason :integrant.core/build-failed-spec,
penpot-backend-1 | :system
penpot-backend-1 | {:app.auth.oidc.providers/github nil,
penpot-backend-1 | :app.db/pool #object[com.zaxxer.hikari.HikariDataSource 0xee8647d "HikariDataSource (main)"],
penpot-backend-1 | :app.auth.oidc.providers/gitlab nil,
penpot-backend-1 | :app.http.client/client
penpot-backend-1 | #object[jdk.internal.net.http.HttpClientFacade 0x7e21e9a1 "jdk.internal.net.http.HttpClientImpl@1edf9a85(1)"],
penpot-backend-1 | :app.email/blacklist nil,
penpot-backend-1 | :app.auth.oidc.providers/generic nil,
penpot-backend-1 | :app.email/whitelist nil,
penpot-backend-1 | :app.migrations/migrations nil,
penpot-backend-1 | ...},
penpot-backend-1 | :key :app.setup/props,
penpot-backend-1 | :value
penpot-backend-1 | {:app.db/pool #object[com.zaxxer.hikari.HikariDataSource 0xee8647d "HikariDataSource (main)"],
penpot-backend-1 | :app.main/migrations nil}}
penpot-backend-1 |
penpot-backend-1 | → java.lang.AssertionError: Assert failed: expected valid key string (setup.clj:78)
penpot-backend-1 | at: app.setup$eval42321$fn__42322.invoke(setup.clj:78)
penpot-backend-1 | clojure.lang.MultiFn.invoke(MultiFn.java:234)
penpot-backend-1 | integrant.core$wrapped_assert_key.invokeStatic(core.cljc:548)
penpot-backend-1 | integrant.core$wrapped_assert_key.invoke(core.cljc:547)
penpot-backend-1 | integrant.core$build_key.invokeStatic(core.cljc:425)
penpot-backend-1 | integrant.core$build_key.invoke(core.cljc:423)
penpot-backend-1 | clojure.core$partial$fn__5931.invoke(core.clj:2656)
penpot-backend-1 | clojure.core.protocols$fn__8275.invokeStatic(protocols.clj:167)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:123)
penpot-backend-1 | clojure.core.protocols$fn__8229$G__8224__8238.invoke(protocols.clj:19)
penpot-backend-1 | clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
penpot-backend-1 | clojure.core.protocols$fn__8262.invokeStatic(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols$fn__8203$G__8198__8216.invoke(protocols.clj:13)
penpot-backend-1 | clojure.core$reduce.invokeStatic(core.clj:6965)
penpot-backend-1 | clojure.core$reduce.invoke(core.clj:6947)
penpot-backend-1 | integrant.core$build.invokeStatic(core.cljc:453)
penpot-backend-1 | integrant.core$build.invoke(core.cljc:430)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:675)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:672)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | app.main$start$fn__48565.invoke(main.clj:551)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:154)
penpot-backend-1 | clojure.lang.AFn.applyTo(AFn.java:144)
penpot-backend-1 | clojure.lang.Var.alterRoot(Var.java:310)
penpot-backend-1 | clojure.core$alter_var_root.invokeStatic(core.clj:5563)
penpot-backend-1 | clojure.core$alter_var_root.doInvoke(core.clj:5558)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:428)
penpot-backend-1 | app.main$start.invokeStatic(main.clj:545)
penpot-backend-1 | app.main$start.invoke(main.clj:541)
penpot-backend-1 | app.main$_main.invokeStatic(main.clj:611)
penpot-backend-1 | app.main$_main.doInvoke(main.clj:603)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:400)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:152)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:135)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.core$apply.invokeStatic(core.clj:667)
penpot-backend-1 | clojure.main$main_opt.invokeStatic(main.clj:515)
penpot-backend-1 | clojure.main$main_opt.invoke(main.clj:511)
penpot-backend-1 | clojure.main$main.invokeStatic(main.clj:665)
penpot-backend-1 | clojure.main$main.doInvoke(main.clj:617)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:140)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.main.main(main.java:40)
penpot-backend-1 |
penpot-backend-1 exited with code 0