Docker image shuts down after initialization is COMPLETE

I'm having a problem when using Metabase in a Docker Swarm + Portainer stack.

It returns that the initialization is COMPLETE, but after a few seconds it shut's down. Here's the logs I got.

Warning: environ value jdk-11.0.22+7 for key :java-version has been overwritten with 11.0.22
2024-04-23 14:07:04,368 INFO metabase.util :: Maximum memory available to JVM: 3.0 GB
2024-04-23 14:07:06,371 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance. 🔓 
 For more information, see https://metabase.com/docs/latest/operations-guide/encrypting-database-details-at-rest.html
2024-04-23 14:07:12,307 INFO driver.impl :: Registered abstract driver :sql  🚚
2024-04-23 14:07:12,321 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) 🚚
2024-04-23 14:07:12,330 INFO metabase.util :: Load driver :sql-jdbc took 90.8 ms
2024-04-23 14:07:12,330 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:12,513 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:12,548 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:14,436 INFO metabase.core :: 
Metabase v0.49.6 (5abf130) 
Copyright © 2024 Metabase, Inc. 
Metabase Enterprise Edition extensions are NOT PRESENT.
2024-04-23 14:07:14,446 INFO metabase.core :: Starting Metabase in STANDALONE mode
2024-04-23 14:07:14,501 INFO metabase.server :: Launching Embedded Jetty Webserver with config:
 {:port 3000, :host "0.0.0.0"}
2024-04-23 14:07:14,559 INFO metabase.core :: Starting Metabase version v0.49.6 (5abf130) ...
2024-04-23 14:07:14,564 INFO metabase.core :: System info:
 {"file.encoding" "UTF-8",
 "java.runtime.name" "OpenJDK Runtime Environment",
 "java.runtime.version" "11.0.22+7",
 "java.vendor" "Eclipse Adoptium",
 "java.vendor.url" "https://adoptium.net/",
 "java.version" "11.0.22",
 "java.vm.name" "OpenJDK 64-Bit Server VM",
 "java.vm.version" "11.0.22+7",
 "os.name" "Linux",
 "os.version" "5.15.0-100-generic",
 "user.language" "en",
 "user.timezone" "GMT"}
2024-04-23 14:07:14,566 INFO metabase.plugins :: Loading plugins in /plugins...
2024-04-23 14:07:14,784 INFO util.files :: Extract file /modules/mongo.metabase-driver.jar -> /plugins/mongo.metabase-driver.jar
2024-04-23 14:07:14,814 INFO util.files :: Extract file /modules/bigquery-cloud-sdk.metabase-driver.jar -> /plugins/bigquery-cloud-sdk.metabase-driver.jar
2024-04-23 14:07:14,985 INFO util.files :: Extract file /modules/vertica.metabase-driver.jar -> /plugins/vertica.metabase-driver.jar
2024-04-23 14:07:14,987 INFO util.files :: Extract file /modules/athena.metabase-driver.jar -> /plugins/athena.metabase-driver.jar
2024-04-23 14:07:15,074 INFO util.files :: Extract file /modules/googleanalytics.metabase-driver.jar -> /plugins/googleanalytics.metabase-driver.jar
2024-04-23 14:07:15,087 INFO util.files :: Extract file /modules/sqlite.metabase-driver.jar -> /plugins/sqlite.metabase-driver.jar
2024-04-23 14:07:15,121 INFO util.files :: Extract file /modules/redshift.metabase-driver.jar -> /plugins/redshift.metabase-driver.jar
2024-04-23 14:07:15,127 INFO util.files :: Extract file /modules/snowflake.metabase-driver.jar -> /plugins/snowflake.metabase-driver.jar
2024-04-23 14:07:15,482 INFO util.files :: Extract file /modules/oracle.metabase-driver.jar -> /plugins/oracle.metabase-driver.jar
2024-04-23 14:07:15,483 INFO util.files :: Extract file /modules/presto-jdbc.metabase-driver.jar -> /plugins/presto-jdbc.metabase-driver.jar
2024-04-23 14:07:15,532 INFO util.files :: Extract file /modules/sparksql.metabase-driver.jar -> /plugins/sparksql.metabase-driver.jar
2024-04-23 14:07:15,587 INFO util.files :: Extract file /modules/sqlserver.metabase-driver.jar -> /plugins/sqlserver.metabase-driver.jar
2024-04-23 14:07:15,595 INFO util.files :: Extract file /modules/druid.metabase-driver.jar -> /plugins/druid.metabase-driver.jar
2024-04-23 14:07:15,746 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :snowflake...
2024-04-23 14:07:15,747 INFO driver.impl :: Registered driver :snowflake (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,753 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlserver...
2024-04-23 14:07:15,753 INFO driver.impl :: Registered driver :sqlserver (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,757 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :googleanalytics...
2024-04-23 14:07:15,757 INFO driver.impl :: Registered driver :googleanalytics  🚚
2024-04-23 14:07:15,761 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :druid...
2024-04-23 14:07:15,761 INFO driver.impl :: Registered driver :druid  🚚
2024-04-23 14:07:15,772 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :athena...
2024-04-23 14:07:15,773 INFO driver.impl :: Registered driver :athena (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,785 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :bigquery-cloud-sdk...
2024-04-23 14:07:15,785 INFO driver.impl :: Registered driver :bigquery-cloud-sdk (parents: [:sql]) 🚚
2024-04-23 14:07:15,797 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :presto-jdbc...
2024-04-23 14:07:15,798 INFO driver.impl :: Registered driver :presto-jdbc (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,802 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Oracle Driver due to required dependencies. Metabase requires the Oracle JDBC driver in order to connect to Oracle databases, but we can't ship it as part of Metabase due to licensing restrictions. See https://metabase.com/docs/latest/administration-guide/databases/oracle.html for more details.
2024-04-23 14:07:15,804 INFO plugins.dependencies :: Metabase Oracle Driver dependency {:class oracle.jdbc.OracleDriver} satisfied? false
2024-04-23 14:07:15,804 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Oracle Driver"]
2024-04-23 14:07:15,810 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :mongo...
2024-04-23 14:07:15,811 INFO driver.impl :: Registered driver :mongo  🚚
2024-04-23 14:07:15,814 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :redshift...
2024-04-23 14:07:15,814 INFO driver.impl :: Registered driver :redshift (parents: [:postgres]) 🚚
2024-04-23 14:07:15,817 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlite...
2024-04-23 14:07:15,817 INFO driver.impl :: Registered driver :sqlite (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,819 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Vertica Driver due to required dependencies. Metabase requires the Vertica JDBC driver in order to connect to Vertica databases, but we can't ship it as part of Metabase due to licensing restrictions. See https://metabase.com/docs/latest/administration-guide/databases/vertica.html for more details.
2024-04-23 14:07:15,820 INFO plugins.dependencies :: Metabase Vertica Driver dependency {:class com.vertica.jdbc.Driver} satisfied? false
2024-04-23 14:07:15,820 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Vertica Driver" "Metabase Oracle Driver"]
2024-04-23 14:07:15,827 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :hive-like...
2024-04-23 14:07:15,827 INFO driver.impl :: Registered abstract driver :hive-like (parents: [:sql-jdbc]) 🚚
2024-04-23 14:07:15,828 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sparksql...
2024-04-23 14:07:15,828 INFO driver.impl :: Registered driver :sparksql (parents: [:hive-like]) 🚚
2024-04-23 14:07:15,834 INFO metabase.core :: Setting up and migrating Metabase DB. Please sit tight, this may take a minute...
2024-04-23 14:07:15,835 INFO db.setup :: Verifying postgres Database Connection ...
2024-04-23 14:07:16,177 INFO db.setup :: Successfully verified PostgreSQL 15.6 (Debian 15.6-1.pgdg120+2) application database connection. ✅
2024-04-23 14:07:16,178 INFO db.setup :: Checking if a database downgrade is required...
2024-04-23 14:07:16,797 INFO db.setup :: Running Database Migrations...
2024-04-23 14:07:16,798 INFO db.setup :: Setting up Liquibase...
2024-04-23 14:07:16,942 INFO db.setup :: Liquibase is ready.
2024-04-23 14:07:16,943 INFO db.liquibase :: Checking if Database has unrun migrations...
2024-04-23 14:07:17,291 INFO db.liquibase :: No unrun migrations found.
2024-04-23 14:07:17,291 INFO db.setup :: Database Migrations Current ...  ✅
2024-04-23 14:07:17,292 INFO metabase.util :: Database setup took 1.5 s
2024-04-23 14:07:17,380 INFO metabase.core :: Looks like this is a new installation ... preparing setup wizard
2024-04-23 14:07:17,396 INFO metabase.core :: Please use the following URL to setup your Metabase installation:
http://0.0.0.0:3000/setup/
2024-04-23 14:07:17,421 INFO metabase.events :: Loading events namespace: metabase.events.audit-log 👂
2024-04-23 14:07:17,449 INFO metabase.events :: Loading events namespace: metabase.events.driver-notifications 👂
2024-04-23 14:07:17,455 INFO metabase.events :: Loading events namespace: metabase.events.last-login 👂
2024-04-23 14:07:17,459 INFO metabase.events :: Loading events namespace: metabase.events.persisted-info 👂
2024-04-23 14:07:17,465 INFO metabase.events :: Loading events namespace: metabase.events.recent-views 👂
2024-04-23 14:07:17,472 INFO metabase.events :: Loading events namespace: metabase.events.revision 👂
2024-04-23 14:07:17,528 INFO metabase.events :: Loading events namespace: metabase.events.schema 👂
2024-04-23 14:07:17,528 INFO metabase.events :: Loading events namespace: metabase.events.sync-database 👂
2024-04-23 14:07:17,535 INFO metabase.events :: Loading events namespace: metabase.events.view-log 👂
2024-04-23 14:07:17,615 INFO impl.StdSchedulerFactory :: Using default implementation for ThreadExecutor
2024-04-23 14:07:17,633 INFO core.SchedulerSignalerImpl :: Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2024-04-23 14:07:17,633 INFO core.QuartzScheduler :: Quartz Scheduler v.2.3.2 created.
2024-04-23 14:07:17,635 INFO jdbcjobstore.JobStoreTX :: Using db table-based data access locking (synchronization).
2024-04-23 14:07:17,636 INFO jdbcjobstore.JobStoreTX :: JobStoreTX initialized.
2024-04-23 14:07:17,637 INFO core.QuartzScheduler :: Scheduler meta-data: Quartz Scheduler (v2.3.2) 'MetabaseScheduler' with instanceId 'e2d98a814d581713881237617'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.impl.jdbcjobstore.JobStoreTX' - which supports persistence. and is clustered.
2024-04-23 14:07:17,637 INFO impl.StdSchedulerFactory :: Quartz scheduler 'MetabaseScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
2024-04-23 14:07:17,637 INFO impl.StdSchedulerFactory :: Quartz scheduler version: 2.3.2
2024-04-23 14:07:17,719 INFO core.QuartzScheduler :: Scheduler MetabaseScheduler_$_e2d98a814d581713881237617 paused.
2024-04-23 14:07:17,719 INFO metabase.task :: Task scheduler initialized into standby mode.
2024-04-23 14:07:17,720 INFO metabase.task :: Initializing task SyncDatabases
2024-04-23 14:07:17,758 INFO task.sync-databases :: Updated default schedules for %d databases 0
2024-04-23 14:07:17,759 INFO metabase.task :: Initializing task PersistRefresh
2024-04-23 14:07:17,776 INFO driver.impl :: Initializing driver :sql...
2024-04-23 14:07:17,776 INFO driver.impl :: Initializing driver :sql-jdbc...
2024-04-23 14:07:17,777 INFO driver.impl :: Initializing driver :h2...
2024-04-23 14:07:17,813 INFO metabase.task :: Initializing task CheckForNewVersions
2024-04-23 14:07:17,832 INFO metabase.task :: Initializing task PersistPrune
2024-04-23 14:07:17,834 INFO metabase.task :: Initializing task SendAnonymousUsageStats
2024-04-23 14:07:17,845 INFO metabase.task :: Initializing task ModelIndexValues
2024-04-23 14:07:17,847 INFO metabase.task :: Initializing task RefreshSlackChannelsAndUsers
2024-04-23 14:07:17,862 INFO metabase.task :: Initializing task TruncateAuditTables
2024-04-23 14:07:17,872 INFO metabase.task :: Initializing task SendPulses
2024-04-23 14:07:17,882 INFO metabase.task :: Initializing task SendFollowUpEmails
2024-04-23 14:07:17,893 INFO metabase.task :: Initializing task SendCreatorSentimentEmails
2024-04-23 14:07:17,903 INFO metabase.task :: Initializing task TaskHistoryCleanup
2024-04-23 14:07:17,912 INFO metabase.task :: Initializing task SendWarnPulseRemovalEmail
2024-04-23 14:07:17,918 INFO jdbcjobstore.JobStoreTX :: ClusterManager: detected 1 failed or restarted instances.
2024-04-23 14:07:17,919 INFO jdbcjobstore.JobStoreTX :: ClusterManager: Scanning for instance "f7aa2baca7b21713880996031"'s failed in-progress jobs.
2024-04-23 14:07:17,923 INFO core.QuartzScheduler :: Scheduler MetabaseScheduler_$_e2d98a814d581713881237617 started.
2024-04-23 14:07:17,923 INFO metabase.task :: Task scheduler started
2024-04-23 14:07:17,925 INFO metabase.core :: Metabase Initialization COMPLETE in 18.4 s
2024-04-23 14:07:17,961 INFO task.refresh-slack-channel-user-cache :: Slack is not configured, not refreshing slack user/channel cache.
2024-04-23 14:08:16,311 INFO metabase.core :: Metabase Shutting Down ...
2024-04-23 14:08:16,311 INFO core.QuartzScheduler :: Scheduler MetabaseScheduler_$_e2d98a814d581713881237617 shutting down.
2024-04-23 14:08:16,311 INFO core.QuartzScheduler :: Scheduler MetabaseScheduler_$_e2d98a814d581713881237617 paused.
2024-04-23 14:08:16,316 INFO core.QuartzScheduler :: Scheduler MetabaseScheduler_$_e2d98a814d581713881237617 shutdown complete.
2024-04-23 14:08:16,317 INFO metabase.server :: Shutting Down Embedded Jetty Webserver
2024-04-23 14:08:16,322 INFO metabase.core :: Metabase Shutdown COMPLETE

Here's my docker-compose.yml file:

version: '3.8'

services:
  metabase:
    image: metabase/metabase:latest
    ports:
      - 3000:3000
    deploy:
      replicas: 1
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabaseappdb
      MB_DB_PORT: 5432
      MB_DB_USER: xxx
      MB_DB_PASS: xxx
      MB_DB_HOST: xxx
      JAVA_OPTS: "-Xmx3g"
    healthcheck:
      test: curl --fail -I https://localhost:3000/api/health || exit 1
      interval: 15s
      timeout: 5s
      retries: 5
    networks:
      - app_network
networks:
  app_network:
    external: true

I have no idea why it's not working, the database is connecting well, it even gives me a url to setup the metabase, but it never really starts. After giving the shutdown message the container fails and starts again.

Figured it out, it was missing the volume. But it's interesting because it didn't show any errors. This is how it is now:

version: '3.7'

services:
  metabase:
    image: metabase/metabase
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabaseappdb
      MB_DB_PORT: 5432
      MB_DB_USER: xxx
      MB_DB_PASS: xxx
      MB_DB_HOST: xxx.com
      JAVA_OPTS: "-Xmx3g"
    volumes:
      - metabase-data:/metabase-data
    networks:
      - some_network

volumes:
  metabase-data:

networks:
  some_network:
    external: true
1 Like