Я использую TestContainers для запуска dgraph.
Вот мой тестовый код:
package net.dgraph.java.client
import io.dgraph.DgraphAsyncClient
import io.dgraph.DgraphClient
import org.testcontainers.containers.DockerComposeContainer
import org.testcontainers.containers.GenericContainer
import org.testcontainers.spock.Testcontainers
import spock.lang.Shared
import spock.lang.Specification
import java.time.Duration
import java.time.temporal.ChronoUnit
@Testcontainers
public class DGraphTest extends Specification {
private SyncSigmaDgraphClient syncClient
private AsyncSigmaDGraphClient asyncClient
private static address
static DockerComposeContainer compose
def setup() {
syncClient = SigmaDgraphClientBuilder
.create()
.withHost(address)
.withPort(port1)
.buildSync()
}
static {
compose =
new DockerComposeContainer(
new File("src/test/resources/docker-compose.yaml"))
compose.start()
this.address = compose.getServiceHost("dgraph", 8080)
this.port1 = compose.getServicePort("dgraph",8080)
}
И мой файл docker-compose.yaml выглядит так:
version: "3.2"
services:
zero:
image: dgraph/dgraph:latest
volumes:
- /tmp/data:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=zero:5080
alpha:
image: dgraph/dgraph:latest
volumes:
- /tmp/data:/dgraph
ports:
- 8080:8080
- 9080:9080
restart: on-failure
command: dgraph alpha --my=alpha:7080 --lru_mb=2048 --zero=zero:5080
ratel:
image: dgraph/dgraph:latest
ports:
- 8000:8000
command: dgraph-ratel
Моя версия Docker Docker version 19.03.2, build 6a30dfc
, а моя версия Docker-compose docker-compose version 1.24.1, build 4667896b
.
Однако я получаю следующую ошибку:
[main] ERROR ? [docker/compose:1.8.0] - Log output from the failed container:
Version in "src/test/resources/docker-compose.yaml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
Одна часть, которую я нахожу интересной, состоит в том, что журнал ошибок показывает docker / compose: 1.8.0, которая является более старой версией, чем та,Я сейчас бегу. Я пытался изменить версии в моем docker-compose, но, похоже, это не работает. Я посмотрел на другие вопросы, которые имеют ту же ошибку, и ни одно из их решений не работает. Я чувствую, что библиотека TestContainer использует более старую версию docker-compose, чем я, но если это проблема, то я не знаю, как ее исправить.