# Failed container in Mender prod deployment

**URL:** https://hub.mender.io/t/failed-container-in-mender-prod-deployment/1796
**Category:** General Discussions
**Created:** [April 16, 2020, 1:57pm UTC](https://hub.mender.io/t/failed-container-in-mender-prod-deployment/1796 "2020-04-16T13:57:16Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![vikram](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/vikram/32/572_2.png) [@vikram](https://hub.mender.io/u/vikram)
#### Post date: [April 16, 2020, 1:57pm UTC](https://hub.mender.io/t/failed-container-in-mender-prod-deployment/1796/1 "2020-04-16T13:57:16Z")

</div>

Hi,  
Im trying to deploy mender prod server locally in my office dev network.  
I followed the process mentioned in [https://docs.mender.io/2.3/administration/production-installation](https://docs.mender.io/2.3/administration/production-installation).  
All containers seems to be up except for `redis:5-alpine3.8` which is restarting continuously and `mendersoftware/mender-conductor:1.6.0` containers which keeps on checking health

Log for redis

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/02594fc0cf8ac8747eca93e8b54d3ce39412312c.png)

Log for mender-conductor

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/9be2e1608d18e3bf384739d0cbb76beefd41634b.png)  
Also i’m including prod.yml file

```
# this is a template file for production setup, consult
# https://docs.docker.com/compose/compose-file/ for details on syntax and usage
#
# Notes:
# - integration/docker-compose.yml file is assumed to be included
# - integration/docker-compose.storage.minio.yml is assumed to be included
# - all services are part of `mender` network (service names are unchanged)
# - keys and certificates are generated using keygen utility from integration
# repository, keys and certificates are stored in ./keys-generated directory
# - certificates and key are mounted into containers using volumes
# - minio artifacts are stored in a named volume `mender-artifacts`; volume
# needs to be created manually using `docker volume create mender-artifacts`

# related compose bugs:
# - https://github.com/docker/compose/issues/3874
# - https://github.com/docker/compose/issues/3568
# - https://github.com/docker/compose/issues/3219

version: '2.1'
services:

    mender-workflows-server:
        command: server --automigrate

    mender-create-artifact-worker:
        command: --automigrate

    mender-useradm:
        command: server --automigrate
        volumes:
            - ./production/keys-generated/keys/useradm/private.key:/etc/useradm/rsa/private.pem:ro
        logging:
            options:
                max-file: "10"
                max-size: "50m"

    mender-device-auth:
        command: server --automigrate
        volumes:
            - ./production/keys-generated/keys/deviceauth/private.key:/etc/deviceauth/rsa/private.pem:ro
        logging:
            options:
                max-file: "10"
                max-size: "50m"

    mender-inventory:
        command: server --automigrate
        logging:
            options:
                max-file: "10"
                max-size: "50m"

    mender-api-gateway:
        ports:
            # list of ports API gateway is made available on
            - "443:443"
        networks:
            - mender
        volumes:
            - ./production/keys-generated/certs/api-gateway/cert.crt:/var/www/mendersoftware/cert/cert.crt:ro
            - ./production/keys-generated/certs/api-gateway/private.key:/var/www/mendersoftware/cert/private.key:ro
        logging:
            options:
                max-file: "10"
                max-size: "50m"
        environment:
            ALLOWED_HOSTS: srsdc107557l601.tnext.loc

    storage-proxy:
        ports:
            # outside port mapping for artifact storage (note that storage-proxy listens on port 9000)
            - "9000:9000"
        networks:
            mender:
                aliases:
                    # change the alias to DNS name that storage will be
                    # available on, for instance if devices will access storage
                    # using https://s3.acme.org:9000, then set this to
                    # s3.acme.org
                    - srsdc107557l601.tnext.loc
        environment:

            # use nginx syntax for rate limiting, see
            # https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate
            # Examples:
            # 1m - 1MB/s
            # 512k - 512kB/s
            DOWNLOAD_SPEED: 1m
            MAX_CONNECTIONS: 100
        volumes:
            - ./production/keys-generated/certs/storage-proxy/cert.crt:/var/www/storage-proxy/cert/cert.crt:ro
            - ./production/keys-generated/certs/storage-proxy/private.key:/var/www/storage-proxy/cert/private.key:ro
            - ./storage-proxy/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf

    mender-deployments:
        command: server --automigrate
        volumes:
            - ./production/keys-generated/certs/storage-proxy/cert.crt:/etc/ssl/certs/storage-proxy.crt:ro
        environment:
            STORAGE_BACKEND_CERT: /etc/ssl/certs/storage-proxy.crt
            # access key, the same value as MINIO_ACCESS_KEY
            DEPLOYMENTS_AWS_AUTH_KEY: mender-deployments
            # secret, the same valie as MINIO_SECRET_KEY
            DEPLOYMENTS_AWS_AUTH_SECRET: Virender4182020

            # deployments service uses signed URLs, hence it needs to access
            # storage-proxy using exactly the same name as devices will; if
            # devices will access storage using https://s3.acme.org:9000, then
            # set this to https://s3.acme.org:9000
            DEPLOYMENTS_AWS_URI: https://srsdc107557l601.tnext.loc:9000
        logging:
            options:
                max-file: "10"
                max-size: "50m"

    minio:
        environment:
            # access key
            MINIO_ACCESS_KEY: mender-deployments
            # secret
            MINIO_SECRET_KEY: Virender4182020
        volumes:
            # mounts a docker volume named `mender-artifacts` as /export directory
            - mender-artifacts:/export:rw

    mender-mongo:
        volumes:
            - mender-db:/data/db:rw
    mender-elasticsearch:
        volumes:
            - mender-elasticsearch-db:/usr/share/elasticsearch/data:rw
    mender-redis:
        volumes:
            - mender-redis-db:/var/lib/redis:rw
            - ./conductor/redis/redis.conf:/etc/redis/redis.conf
            - ./conductor/redis/entrypoint.sh:/redis/entrypoint.sh
        entrypoint: /redis/entrypoint.sh

volumes:
    # mender artifacts storage
    mender-artifacts:
      external:
          # use external volume created manually
          name: mender-artifacts
    # mongo service database
    mender-db:
      external:
          # use external volume created manually
          name: mender-db
    # elasticsearch database
    mender-elasticsearch-db:
      external:
          # use external volume created manually
          name: mender-elasticsearch-db
    # redis database
    mender-redis-db:
      external:
          # use external volume created manually
          name: mender-redis-db
```
