Is possible to add service inside docker compose

Hi, Is it possible to add a service inside the docker compose file, using “PMM_AGENT_PRERUN_SCRIPT”? I’ve tried, but it doesn’t work. Is there any other way?
This is my code:

name: pmm-client
services:
  pmm-client-config1:
    container_name: pmm-client-config1
    restart: unless-stopped
    image: percona/pmm-client
    environment:
      PMM_AGENT_SERVER_ADDRESS: "xxx:443"
      PMM_AGENT_SERVER_USERNAME: "admin"
      PMM_AGENT_SERVER_PASSWORD: "apem12345"
      PMM_AGENT_SERVER_INSECURE_TLS: "1"
      PMM_AGENT_SETUP: "1"
      PMM_AGENT_SETUP_FORCE: "1"
      PMM_AGENT_CONFIG_FILE: "config/pmm-agent.yaml"
      PMM_AGENT_SETUP_NODE_NAME: "pmm-mongodb-config1"
      PMM_AGENT_SETUP_NODE_ADDRESS: "xxx:20001"
      PMM_AGENT_SETUP_NODE_TYPE: "container"
      PMM_AGENT_PRERUN_SCRIPT: "pmm-admin add mongodb --username=pmm --password=apem12345 --service-name=svc-config1 --host=xxx --port=20001 --cluster config --environment shard-cluster --replication-set=configrs --max-query-length=0 --query-source=profiler

Hi @Bram_Pratowo,
could you provide any logs?

This is the script used in our operators

1 Like

Hi, here is my working configuration, there are three databases here, you can keep only MongoDB.

version: '3.7'
services:

  mongodb:
    image: "percona/percona-server-mongodb:7.0-arm64"
    volumes:
      - mongodata:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password
      MONGO_INITDB_DATABASE: github
    ports: 
      - "27017:27017"

  postgres:
    image: percona/percona-distribution-postgresql:16.2-multi
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: postgres
      LANG: en_US.utf8
      PGDATA: /data/db
    volumes:
      - pgdata:/data/db
      - ./data/init/postgresql/init.sql:/docker-entrypoint-initdb.d/init.sql
    ports: 
      - "5432:5432"

  mysql:
    image: "percona/percona-server:8.3.0-1.1-multi"
    volumes:
      - mysqldata:/var/lib/mysql
      - ./data/init/mysql:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: github
    ports:
      - "3306:3306"

  pmm-server:
      image: percona/pmm-server:2
      platform: "linux/amd64"
      container_name: pmm-server
      restart: always
      ports:
        - 80:80
        - 443:443
      volumes:
        - pmm-data:/srv
      environment:
        - PMM_DEBUG=1
        - DISABLE_TELEMETRY=0
      healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost"]
        interval: 30s
        timeout: 10s
        retries: 5

  pmm-client-mysql:
    image: percona/pmm-client:2
    platform: "linux/amd64"
    container_name: pmm-client-mysql
    depends_on:
      pmm-server:
        condition: service_healthy
    environment:
      PMM_AGENT_SERVER_ADDRESS: pmm-server
      PMM_AGENT_SERVER_USERNAME: admin
      PMM_AGENT_SERVER_PASSWORD: admin
      PMM_AGENT_SERVER_INSECURE_TLS: 1
      PMM_AGENT_CONFIG_FILE: config/pmm-agent.yaml
      PMM_AGENT_SETUP: 1
      PMM_AGENT_SETUP_FORCE: 1
      PMM_AGENT_PRERUN_SCRIPT: "pmm-admin status --wait=10s; pmm-admin add mysql --username=root --password=password --host=mysql --port=3306"

  pmm-client-mongodb:
    image: percona/pmm-client:2
    platform: "linux/amd64"
    container_name: pmm-client-mongodb
    depends_on:
      pmm-server:
        condition: service_healthy
    environment:
      PMM_AGENT_SERVER_ADDRESS: pmm-server
      PMM_AGENT_SERVER_USERNAME: admin
      PMM_AGENT_SERVER_PASSWORD: admin
      PMM_AGENT_SERVER_INSECURE_TLS: 1
      PMM_AGENT_CONFIG_FILE: config/pmm-agent.yaml
      PMM_AGENT_SETUP: 1
      PMM_AGENT_SETUP_FORCE: 1
      PMM_AGENT_PRERUN_SCRIPT: "pmm-admin status --wait=10s; pmm-admin add mongodb --username=root --password=password --host=mongodb --port=27017"
  
  pmm-client-postgres:
    image: percona/pmm-client:2
    platform: "linux/amd64"
    container_name: pmm-client-postgres
    depends_on:
      pmm-server:
        condition: service_healthy
    environment:
      PMM_AGENT_SERVER_ADDRESS: pmm-server
      PMM_AGENT_SERVER_USERNAME: admin
      PMM_AGENT_SERVER_PASSWORD: admin
      PMM_AGENT_SERVER_INSECURE_TLS: 1
      PMM_AGENT_CONFIG_FILE: config/pmm-agent.yaml
      PMM_AGENT_SETUP: 1
      PMM_AGENT_SETUP_FORCE: 1
      PMM_AGENT_PRERUN_SCRIPT: "pmm-admin status --wait=10s; pmm-admin add postgresql --username=postgres --password=password --host=postgres --port=5432"

volumes:
  mongodata:
  pgdata:
  mysqldata:
  pmm-data: