首页 > 解决方案 > 空 ElasticSearch 容器启动慢(针对自动化测试的情况)

问题描述

我们最近引入了 ElasticSearch,并使用 pytest 和 testcontainers-python 将其嵌入到我们的自动化测试框架中。在执行我们的测试时,我现在遇到了高性能损失,主要是由于 ES-Container 的启动时间。虽然 PostgreSQL-Containers 需要不到一秒的时间准备好,但我测量了大约 15 秒才能使 ES-Container 可查询。

有没有办法增加启动时间,例如通过提供某些启动标志来禁用仅生产使用所需的检查?

主机系统是 macOS Catalina (10.15.5),通过 macOS docker-toolbox 安装了 docker-machine。

我用来启动容器的脚本如下:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --detach=true --name=elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.8.1

以下是生成的日志(由于 StackOverflow 字符限制,我不得不删除adding index template和行):adding template

{"type": "server", "timestamp": "2020-08-14T12:46:12,454Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "version[7.8.1], pid[6], build[default/docker/b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89/2020-07-21T16:40:44.668009Z], OS[Linux/4.14.154-boot2docker/amd64], JVM[AdoptOpenJDK/OpenJDK 64-Bit Server VM/14.0.1/14.0.1+7]" }
{"type": "server", "timestamp": "2020-08-14T12:46:12,466Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "JVM home [/usr/share/elasticsearch/jdk]" }
{"type": "server", "timestamp": "2020-08-14T12:46:12,467Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "JVM arguments [-Xshare:auto, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.locale.providers=SPI,COMPAT, -Xms1g, -Xmx1g, -XX:+UseG1GC, -XX:G1ReservePercent=25, -XX:InitiatingHeapOccupancyPercent=30, -Djava.io.tmpdir=/tmp/elasticsearch-15659003528260691505, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Des.cgroups.hierarchy.override=/, -XX:MaxDirectMemorySize=536870912, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/usr/share/elasticsearch/config, -Des.distribution.flavor=default, -Des.distribution.type=docker, -Des.bundled_jdk=true]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,571Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [aggs-matrix-stats]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,574Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [analysis-common]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,574Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [constant-keyword]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,575Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [flattened]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,577Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [frozen-indices]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,578Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [ingest-common]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,580Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [ingest-geoip]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,580Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [ingest-user-agent]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,580Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [kibana]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,582Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [lang-expression]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,583Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [lang-mustache]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,583Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [lang-painless]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,584Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [mapper-extras]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,584Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [parent-join]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,584Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [percolator]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,586Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [rank-eval]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,587Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [reindex]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,587Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [repository-url]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,592Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [search-business-rules]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,592Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [searchable-snapshots]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,592Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [spatial]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,593Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [tasks]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,594Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [transform]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,595Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [transport-netty4]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,596Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [vectors]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,596Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-analytics]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,597Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-async-search]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,597Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-autoscaling]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,597Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-ccr]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,598Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-core]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,598Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-deprecation]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,599Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-enrich]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,599Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-eql]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,600Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-graph]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,601Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-identity-provider]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,602Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-ilm]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,603Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-logstash]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,603Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-ml]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,604Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-monitoring]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,604Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-ql]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,606Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-rollup]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,607Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-security]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,607Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-sql]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,609Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-voting-only-node]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,609Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "loaded module [x-pack-watcher]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,611Z", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "no plugins loaded" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,719Z", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "using [1] data paths, mounts [[/ (overlay)]], net usable_space [35.3gb], net total_space [46.1gb], types [overlay]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,719Z", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "heap size [1gb], compressed ordinary object pointers [true]" }
{"type": "server", "timestamp": "2020-08-14T12:46:16,800Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "node name [5a13d8aa092e], node ID [1mTfit4SQ_-kQshQRSjHUA], cluster name [docker-cluster]" }
{"type": "server", "timestamp": "2020-08-14T12:46:24,901Z", "level": "INFO", "component": "o.e.x.s.a.s.FileRolesStore", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "parsed [0] roles from file [/usr/share/elasticsearch/config/roles.yml]" }
{"type": "server", "timestamp": "2020-08-14T12:46:26,095Z", "level": "INFO", "component": "o.e.x.m.p.l.CppLogMessageHandler", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "[controller/167] [Main.cc@115] controller (64 bit): Version 7.8.1 (Build d0d3f60f03220d) Copyright (c) 2020 Elasticsearch BV" }
{"type": "server", "timestamp": "2020-08-14T12:46:27,488Z", "level": "DEBUG", "component": "o.e.a.ActionModule", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "Using REST wrapper from plugin org.elasticsearch.xpack.security.Security" }
{"type": "server", "timestamp": "2020-08-14T12:46:27,759Z", "level": "INFO", "component": "o.e.d.DiscoveryModule", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "using discovery type [single-node] and seed hosts providers [settings]" }
{"type": "server", "timestamp": "2020-08-14T12:46:29,664Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "initialized" }
{"type": "server", "timestamp": "2020-08-14T12:46:29,669Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "starting ..." }
{"type": "server", "timestamp": "2020-08-14T12:46:29,887Z", "level": "INFO", "component": "o.e.t.TransportService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "publish_address {172.17.0.5:9300}, bound_addresses {0.0.0.0:9300}" }
{"type": "server", "timestamp": "2020-08-14T12:46:30,167Z", "level": "INFO", "component": "o.e.c.c.Coordinator", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "setting initial configuration to VotingConfiguration{1mTfit4SQ_-kQshQRSjHUA}" }
{"type": "server", "timestamp": "2020-08-14T12:46:30,377Z", "level": "INFO", "component": "o.e.c.s.MasterService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "elected-as-master ([1] nodes joined)[{5a13d8aa092e}{1mTfit4SQ_-kQshQRSjHUA}{uOmlUgNfSGGdKHmVT1gjAw}{172.17.0.5}{172.17.0.5:9300}{dilmrt}{ml.machine_memory=8368738304, xpack.installed=true, transform.node=true, ml.max_open_jobs=20} elect leader, _BECOME_MASTER_TASK_, _FINISH_ELECTION_], term: 1, version: 1, delta: master node changed {previous [], current [{5a13d8aa092e}{1mTfit4SQ_-kQshQRSjHUA}{uOmlUgNfSGGdKHmVT1gjAw}{172.17.0.5}{172.17.0.5:9300}{dilmrt}{ml.machine_memory=8368738304, xpack.installed=true, transform.node=true, ml.max_open_jobs=20}]}" }
{"type": "server", "timestamp": "2020-08-14T12:46:30,452Z", "level": "INFO", "component": "o.e.c.c.CoordinationState", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "cluster UUID set to [34xpmI2KQOGWkn8QmXY4Gw]" }
{"type": "server", "timestamp": "2020-08-14T12:46:30,492Z", "level": "INFO", "component": "o.e.c.s.ClusterApplierService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "master node changed {previous [], current [{5a13d8aa092e}{1mTfit4SQ_-kQshQRSjHUA}{uOmlUgNfSGGdKHmVT1gjAw}{172.17.0.5}{172.17.0.5:9300}{dilmrt}{ml.machine_memory=8368738304, xpack.installed=true, transform.node=true, ml.max_open_jobs=20}]}, term: 1, version: 1, reason: Publication{term=1, version=1}" }
{"type": "server", "timestamp": "2020-08-14T12:46:30,591Z", "level": "INFO", "component": "o.e.h.AbstractHttpServerTransport", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "publish_address {172.17.0.5:9200}, bound_addresses {0.0.0.0:9200}", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:30,592Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "started", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:30,797Z", "level": "INFO", "component": "o.e.g.GatewayService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "recovered [0] indices into cluster_state", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,508Z", "level": "INFO", "component": "o.e.x.i.a.TransportPutLifecycleAction", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "adding index lifecycle policy [watch-history-ilm-policy]", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,576Z", "level": "INFO", "component": "o.e.x.i.a.TransportPutLifecycleAction", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "adding index lifecycle policy [ml-size-based-ilm-policy]", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,643Z", "level": "INFO", "component": "o.e.x.i.a.TransportPutLifecycleAction", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "adding index lifecycle policy [ilm-history-ilm-policy]", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,694Z", "level": "INFO", "component": "o.e.x.i.a.TransportPutLifecycleAction", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "adding index lifecycle policy [slm-history-ilm-policy]", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,893Z", "level": "INFO", "component": "o.e.l.LicenseService", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "license [f666aafd-836c-4890-85ea-bdb81cc6617f] mode [basic] - valid", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }
{"type": "server", "timestamp": "2020-08-14T12:46:32,895Z", "level": "INFO", "component": "o.e.x.s.s.SecurityStatusChangeListener", "cluster.name": "docker-cluster", "node.name": "5a13d8aa092e", "message": "Active license is now [BASIC]; Security is disabled", "cluster.uuid": "34xpmI2KQOGWkn8QmXY4Gw", "node.id": "1mTfit4SQ_-kQshQRSjHUA"  }

标签: dockerelasticsearch

解决方案


不是真正的解决方案,但在这种情况下帮助了我,使用基于 Alpine 的非官方图像。例如。https://github.com/blacktop/docker-elasticsearch-alpine运行速度比官方镜像快很多,尤其是结合 testcontainers-py。


推荐阅读