Assistance Required with CRM App Visibility in custom docker image

Hello Team,

I hope this message finds you well.

I’m encountering an issue with a custom image I’ve built for Frappe. The image includes all the necessary apps, but the CRM app is not appearing among the listed applications.

Could you please advise if there are any additional steps or configurations required to ensure that the CRM app is visible?

Thank you for your assistance.
this is my Json file with the apps

[
  {
    "url": "https://github.com/frappe/erpnext.git",
    "branch": "version-15"
  },
  {
    "url": "https://github.com/frappe/hrms.git",
    "branch": "version-15"
  },
  {
    "url": "https://github.com/frappe/education.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/frappe/payments.git",
    "branch": "version-15"
  },
  {
    "url": "https://github.com/The-Commit-Company/Raven.git",
    "branch": "develop"
  },  
  {
    "url": "https://github.com/frappe/helpdesk.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/frappe/lms.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/frappe/drive.git",
    "branch": "main"
  },  
  {
    "url": "https://github.com/frappe/wiki.git",
    "branch": "master"
  },
  {
    "url": "https://github.com/frappe/crm.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/frappe/print_designer.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/iamtutumo/frappe_ura_efris-ug.git",
    "branch": "master"
  },
  {
    "url": "https://github.com/frappe/gameplan.git",
    "branch": "main"
  },
  {
    "url": "https://github.com/frappe/builder.git",
    "branch": "develop"
  },
  {
    "url": "https://github.com/frappe/insights.git",
    "branch": "develop"
  }
]


and this is my docker compose file

version: "3"

services:
  backend:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

  configurator:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: none
    entrypoint:
      - bash
      - -c
    # add redis_socketio for backward compatibility
    command:
      - >
        ls -1 apps > sites/apps.txt;
        bench set-config -g db_host $$DB_HOST;
        bench set-config -gp db_port $$DB_PORT;
        bench set-config -g redis_cache "redis://$$REDIS_CACHE";
        bench set-config -g redis_queue "redis://$$REDIS_QUEUE";
        bench set-config -g redis_socketio "redis://$$REDIS_QUEUE";
        bench set-config -gp socketio_port $$SOCKETIO_PORT;
    environment:
      DB_HOST: db
      DB_PORT: "3306"
      REDIS_CACHE: redis-cache:6379
      REDIS_QUEUE: redis-queue:6379
      SOCKETIO_PORT: "9000"
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

  create-site:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: none
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    entrypoint:
      - bash
      - -c
    command:
      - >
        wait-for-it -t 120 db:3306;
        wait-for-it -t 120 redis-cache:6379;
        wait-for-it -t 120 redis-queue:6379;
        export start=`date +%s`;
        until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \
          [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \
          [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]];
        do
          echo "Waiting for sites/common_site_config.json to be created";
          sleep 5;
          if (( `date +%s`-start > 120 )); then
            echo "could not find sites/common_site_config.json with required keys";
            exit 1
          fi
        done;
        echo "sites/common_site_config.json found";
        bench new-site --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app erpnext --set-default frontend;
        bench --site frontend install-app erpnext;
        bench --site frontend install-app hrms;
        bench --site frontend install-app payments;
        bench --site frontend install-app education;
        bench --site frontend install-app Raven;
        bench --site frontend install-app print_designer;
        bench --site frontend install-app ura_efris;
        bench --site frontend install-app webshop;
        bench --site frontend install-app lms;
        bench --site frontend install-app drive;
        bench --site frontend install-app wiki;
        bench --site frontend install-app crm;
        bench --site frontend install-app helpdesk;
        bench --site frontend install-app gameplan;
        bench --site frontend install-app insights;

  db:
    image: mariadb:11.2
    healthcheck:
      test: mysqladmin ping -h localhost --password=admin
      interval: 1s
      retries: 15
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --skip-character-set-client-handshake
      - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
    environment:
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - db-data:/var/lib/mysql

  frontend:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    command: 
      - nginx-entrypoint.sh

    environment:
      BACKEND: backend:8000
      FRAPPE_SITE_NAME_HEADER: frontend
      SOCKETIO: websocket:9000
      UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1
      UPSTREAM_REAL_IP_HEADER: X-Forwarded-For
      UPSTREAM_REAL_IP_RECURSIVE: "off"
      PROXY_READ_TIMEOUT: 120
      CLIENT_MAX_BODY_SIZE: 50m
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    ports:
      - "8080:8080"    

  queue-long:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - bench
      - worker
      - --queue
      - long,default,short
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

  queue-short:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    depends_on: ["backend"]      
    command:
      - bench
      - worker
      - --queue
      - short,default
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

  redis-queue:
    image: redis:6.2-alpine
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - redis-queue-data:/data

  redis-cache:
    image: redis:6.2-alpine
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - redis-cache-data:/data

  scheduler:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    depends_on: ["backend"]      
    command:
      - bench
      - schedule
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

  websocket:
    image: etumoses/frappe_alpha:v15
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - node
      - /home/frappe/frappe-bench/apps/frappe/socketio.js
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs

volumes:
  db-data:
  redis-queue-data:
  redis-cache-data:
  sites:
  logs:```

Which method are you following?

Can you get-app and install-app (the same branch of CRM) manually on the same version of bench / ERPNext?

There might be compatibility issue?

Check logs.

#RespectQuestion #EncourageNewUser

Has this docker published somewhere?

If yes, share link so that I can further investigate.

@hsrai m yes its published https://hub.docker.com/r/etumoses/frappe_alpha

1 Like