version: '3.5' networks: db_net: es_net: volumes: cms-shared: dbdata: esdata: services: db: image: postgres:13 command: postgres -c 'max_connections=400' -c 'shared_buffers=128MB' environment: POSTGRES_USER: dotcmsdbuser POSTGRES_PASSWORD: password POSTGRES_DB: dotcms volumes: - dbdata:/var/lib/postgresql/data networks: - db_net elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1 environment: - cluster.name=elastic-cluster - discovery.type=single-node - bootstrap.memory_lock=true - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms1G -Xmx1G" ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 ports: - "9200:9200" - "9600:9600" volumes: - esdata:/usr/share/elasticsearch/data networks: - es_net dotcms: image: dotcms/dotcms:22.10.1 environment: CMS_JAVA_OPTS: '-Xmx1g ' LANG: 'C.UTF-8' TZ: 'UTC' DB_BASE_URL: "jdbc:postgresql://db/dotcms" DB_USERNAME: 'dotcmsdbuser' DB_PASSWORD: 'password' # ES has no auth in this setup: DOT_ES_ENDPOINTS: 'http://elasticsearch:9200' DOT_INITIAL_ADMIN_PASSWORD: 'admin' # === MAIL CONFIG: SMTP + STARTTLS example === DOT_MAIL_TRANSPORT_PROTOCOL: smtp DOT_MAIL_SMTP_HOST: smtp.gmail.com DOT_MAIL_SMTP_PORT: '587' DOT_MAIL_SMTP_AUTH: 'true' DOT_MAIL_SMTP_STARTTLS_ENABLE: 'true' DOT_MAIL_SMTP_USER: '' DOT_MAIL_SMTP_PASSWORD: '' DOT_MAIL_SMTP_SSL_TRUST: "smtp.gmail.com" # Optional custom starter (you can comment this out if not needed) CUSTOM_STARTER_URL: "https://repo.dotcms.com/artifactory/libs-release-local/com/dotcms/starter/20220504/starter-20220504.zip" depends_on: - db - elasticsearch volumes: - cms-shared:/data/shared # If you have a license file locally: # - ./license.zip:/data/shared/assets/license.zip networks: - db_net - es_net ports: - "8080:8080" - "8443:8443"