version: '3.8' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2 container_name: elasticsearch ports: - "9200:9200" healthcheck: test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ] interval: 30s timeout: 10s retries: 3 start_period: 10s environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 oap: image: skywalking/oap:latest container_name: oap depends_on: elasticsearch: condition: service_healthy links: - elasticsearch ports: - "11800:11800" - "12800:12800" healthcheck: test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ] interval: 30s timeout: 10s retries: 3 start_period: 10s environment: SW_STORAGE: elasticsearch SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 SW_HEALTH_CHECKER: default SW_TELEMETRY: prometheus JAVA_OPTS: "-Xms2048m -Xmx2048m" ui: image: skywalking/ui:latest container_name: ui depends_on: oap: condition: service_healthy links: - oap ports: - "8080:8080" environment: SW_OAP_ADDRESS: http://oap:12800 SW_ZIPKIN_ADDRESS: http://oap:9412