title: Unhealthy docker containers
body: <p>I’ve been struggling with an issue over the past few days. Specifically the unhealthy message I get for the Status of the clowder image. This fact does not allow me to run the application on localhost. Here is the result of <code>docker ps</code></p>
  <pre><code>docker ps
  CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                   PORTS                                                                  NAMES
  d46319e43bd5        clowder/clowder:latest       &quot;/bin/sh -c /home/cl…&quot;   3 hours ago         Up 3 hours (unhealthy)   9000/tcp                                                               clowder_clowder_1
  a1c4a3240a4a        clowder/monitor:latest       &quot;/bin/sh -c 'python …&quot;   3 hours ago         Up 3 hours               9999/tcp                                                               clowder_monitor_1
  fa4e9662b1c8        traefik:1.7                  &quot;/traefik --loglevel…&quot;   3 hours ago         Up 3 hours               0.0.0.0:8000-&gt;80/tcp, 0.0.0.0:8443-&gt;443/tcp                            clowder_traefik_1
  a59cf98c71c7        mongo:3.6                    &quot;docker-entrypoint.s…&quot;   3 hours ago         Up 3 hours               27017/tcp                                                              clowder_mongo_1
  5496405f71e7        elasticsearch:2              &quot;/docker-entrypoint.…&quot;   3 hours ago         Up 3 hours               9200/tcp, 9300/tcp                                                     clowder_elasticsearch_1
  7c2c986527d8        rabbitmq:management-alpine   &quot;docker-entrypoint.s…&quot;   3 hours ago         Up 3 hours               4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp   clowder_rabbitmq_1
  </code></pre>
  <p>Here is my <code>docker-compose.yml</code> file:</p>
  <pre><code>version: '3.5'
  services:
    # ----------------------------------------------------------------------
    # SINGLE ENTRYPOINT
    # ----------------------------------------------------------------------
    # webserver to handle all traffic. This can use let's encrypt to generate a SSL cert.
    traefik:
      image: traefik:1.7
      command:
        - --loglevel=INFO
        - --api
        # Entrypoints
        - --defaultentrypoints=https,http
        - --entryPoints=Name:http Address::80 ${TRAEFIK_HTTP_REDIRECT:-&quot;&quot;}
        - --entryPoints=Name:https Address::443 ${TRAEFIK_HTTPS_OPTIONS:-TLS}
        # Configuration for acme (https://letsencrypt.org/)
        - --acme=${TRAEFIK_ACME_ENABLE:-false}
        #- --acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
        - --acme.email=${TRAEFIK_ACME_EMAIL:-&quot;&quot;}
        - --acme.entrypoint=https
        - --acme.onhostrule=true
        - --acme.storage=/config/acme.json
        - --acme.httpchallenge.entrypoint=http
        - --acme.storage=/config/acme.json
        - --acme.acmelogging=true
        # DOCKER
        - --docker=true
        - --docker.endpoint=unix:///var/run/docker.sock
        - --docker.exposedbydefault=false
        - --docker.watch=true
      restart: unless-stopped
      networks:
        - clowder
      ports:
        - &quot;${TRAEFIK_HTTP_PORT-8000}:80&quot;
        - &quot;${TRAEFIK_HTTPS_PORT-8443}:443&quot;
      labels:
        - &quot;traefik.enable=true&quot;
        - &quot;traefik.backend=traefik&quot;
        - &quot;traefik.port=8080&quot;
        - &quot;traefik.frontend.rule=${TRAEFIK_HOST:-}PathPrefixStrip: /traefik&quot;
        - &quot;traefik.website.frontend.whiteList.sourceRange=${TRAEFIK_IPFILTER:-172.16.0.0/12}&quot;
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock:ro
        - traefik:/config
    # ----------------------------------------------------------------------
    # CLOWDER APPLICATION
    # ----------------------------------------------------------------------
    # main clowder application
    clowder:
      image: clowder/clowder:${CLOWDER_VERSION:-latest}
      restart: unless-stopped
      networks:
        - clowder
      depends_on:
        - mongo
      environment:
        - CLOWDER_ADMINS=${CLOWDER_ADMINS:-admin@example.com}
        - CLOWDER_REGISTER=${CLOWDER_REGISTER:-false}
        - CLOWDER_CONTEXT=${CLOWDER_CONTEXT:-/}
        - CLOWDER_SSL=${CLOWDER_SSL:-false}
        - RABBITMQ_URI=${RABBITMQ_URI:-amqp://guest:guest@rabbitmq/%2F}
        - RABBITMQ_EXCHANGE=${RABBITMQ_EXCHANGE:-clowder}
        - RABBITMQ_CLOWDERURL=${RABBITMQ_CLOWDERURL:-http://clowder:9000}
        - SMTP_MOCK=${SMTP_MOCK:-true}
        - SMTP_SERVER=${SMTP_SERVER:-smtp}
      labels:
        - &quot;traefik.enable=true&quot;
        - &quot;traefik.backend=clowder&quot;
        - &quot;traefik.port=9000&quot;
        - &quot;traefik.frontend.rule=${TRAEFIK_HOST:-}PathPrefix: ${CLOWDER_CONTEXT:-/}&quot;
      volumes:
        - clowder-custom:/home/clowder/custom
        - clowder-data:/home/clowder/data
    # ----------------------------------------------------------------------
    # CLOWDER DEPENDENCIES
    # ----------------------------------------------------------------------
    # database to hold metadata (required)
    mongo:
      image: mongo:3.6
      restart: unless-stopped
      networks:
        - clowder
      volumes:
        - mongo:/data/db
    # message broker (optional but needed for extractors)
    rabbitmq:
      image: rabbitmq:management-alpine
      restart: unless-stopped
      networks:
        - clowder
      environment:
        - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbitmq_management path_prefix &quot;/rabbitmq&quot;
        - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER:-guest}
        - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS:-guest}
      labels:
        - &quot;traefik.enable=true&quot;
        - &quot;traefik.backend=rabbitmq&quot;
        - &quot;traefik.port=15672&quot;
        - &quot;traefik.frontend.rule=${TRAEFIK_HOST:-}PathPrefix: /rabbitmq&quot;
        - &quot;traefik.website.frontend.whiteList.sourceRange=${TRAEFIK_IPFILTER:-172.16.0.0/12}&quot;
      volumes:
        - rabbitmq:/var/lib/rabbitmq
    # search index (optional, needed for search and sorting future) 
    elasticsearch:
      image: elasticsearch:2
      command: elasticsearch -Des.cluster.name=&quot;clowder&quot;
      networks:
        - clowder
      restart: unless-stopped
      environment:
        - cluster.name=clowder
      volumes:
        - elasticsearch:/usr/share/elasticsearch/data
    # monitor clowder extractors
    monitor:
      image: clowder/monitor:${CLOWDER_VERSION:-latest}
      restart: unless-stopped
      networks:
        - clowder
      depends_on:
        - rabbitmq
      environment:
        - RABBITMQ_URI=${RABBITMQ_URI:-amqp://guest:guest@rabbitmq/%2F}
        - RABBITMQ_MGMT_PORT=15672
        - RABBITMQ_MGMT_PATH=/rabbitmq
      labels:
        - &quot;traefik.enable=true&quot;
        - &quot;traefik.backend=monitor&quot;
        - &quot;traefik.port=9999&quot;
        - &quot;traefik.frontend.rule=${TRAEFIK_FRONTEND_RULE:-}PathPrefixStrip:/monitor&quot;
  # ----------------------------------------------------------------------
  # NETWORK FOR CONTAINER COMMUNICATION
  # ----------------------------------------------------------------------
  networks:
    clowder:
  # ----------------------------------------------------------------------
  # VOLUMES FOR PERSISTENT STORAGE
  # ----------------------------------------------------------------------
  volumes:
    traefik:
    clowder-data:
    clowder-custom:
    mongo:
    rabbitmq:
    elasticsearch:
  </code></pre>
  <p>I run <code>docker-compose up -d</code> to create the app. The problem started after upgrading to macos 10.15.7. Before that I was able to run things smoothly. I’m sorry but I only have limited experience with docker. Thank you in advance y’all!</p>