flapdoodle-oss / de.flapdoodle.embed.mongo.spring

embedded mongo spring integration
Apache License 2.0
30 stars 7 forks source link

TransactionConfig fails in docker container #31

Closed t0ry closed 8 months ago

t0ry commented 11 months ago

Hi there,

I used this tutorial: https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo.spring/blob/main/HowTo.md#transactions It worked for me locally. However I need to build my service in docker container. Container setup is pretty simple

FROM gradle:7.6.1-jdk17
RUN mkdir /home/gradle/service
WORKDIR /home/gradle/service
ENV GRADLE_RUN_TASKS="clean build test"
ENV GRADLE_RUN_OPTS=""
ENV GIT_COMMIT=""
CMD gradle $GRADLE_RUN_TASKS $GRADLE_RUN_OPTS --no-daemon

On test service startup fails with following stack trace:

Unsatisfied dependency expressed through method 'reactiveMongoDatabaseFactory' parameter 1: Error creating bean with name 'reactiveClientServerWrapper' defined in class path resource [de/flapdoodle/embed/mongo/spring/autoconfigure/EmbeddedMongoAutoConfiguration$ReactiveClientServerWrapperConfig.class]: rollback after error on transition to State(de.flapdoodle.embed.mongo.transitions.RunningMongodProcess), successful reached:
  StateID{name=, type=class de.flapdoodle.embed.process.archives.ExtractedFileSet}=ExtractedFileSet{baseDir=/root/.embedmongo/fileSets/42198b366a7bbe92dd01a0dd5117fbe1dc7961ed799c01fc4dc0c6c5ab0fa010, executable=/root/.embedmongo/fileSets/42198b366a7bbe92dd01a0dd5117fbe1dc7961ed799c01fc4dc0c6c5ab0fa010/mongod, libraryFiles=[]},
  StateID{name=, type=class de.flapdoodle.embed.process.types.Archive}=Archive(/root/.embedmongo/archives/https-fastdl-mongodb-org/56cb3d10404e5b9df5358ac4ee83efcb/linuxmongodb-linux-x86-64-ubuntu2004-5-0-5-tgz/cb4721908b2f26e1f8f5144d0684811fd4b4c3218d3eb77a59d457fd0e3a23ec/archive.tgz),
  StateID{name=, type=interface de.flapdoodle.embed.process.store.DownloadCache}=de.flapdoodle.embed.process.store.LocalDownloadCache@3fc261b7,
  StateID{name=, type=interface de.flapdoodle.embed.process.config.store.Package}=Package{archiveType=TGZ, fileSet=FileSet{entries=[Entry{type=Executable, destination=mongod, uncompiledMatchingPattern=UncompiledPattern{regex=.*mongod, flags=2}}]}, url=[https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.5.tgz},](https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.5.tgz%7D,)
  StateID{name=, type=interface de.flapdoodle.embed.process.store.ExtractedFileSetStore}=de.flapdoodle.embed.process.store.ContentHashExtractedFileSetStore@11101f62,
  StateID{name=, type=class de.flapdoodle.embed.process.types.ProcessArguments}=ProcessArguments([--dbpath, /tmp/temp--bc4b9288-9fdf-48ff-93e3-208407acdc5a/mongod-database18207908853209293453, --noauth, --port, 34703, --bind_ip, 127.0.0.1, --replSet, test, --oplogSize, 1, --syncdelay=0]),
  StateID{name=, type=class de.flapdoodle.embed.process.types.ProcessWorkingDir}=ProcessWorkingDir(/tmp/temp--bc4b9288-9fdf-48ff-93e3-208407acdc5a/workingDir6890042029838269404),
  StateID{name=, type=class de.flapdoodle.embed.process.distribution.Distribution}=GenericFeatureAwareVersion{5.0.5}:Platform{operatingSystem=Linux, architecture=X86_64, distribution=Ubuntu, version=Ubuntu_22_04},
  StateID{name=, type=interface de.flapdoodle.embed.process.config.SupportConfig}=SupportConfig{name=mongod, supportUrl=https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo/issues, messageOnException=de.flapdoodle.embed.mongo.transitions.ProcessDefaults$$Lambda$1084/0x0000000801743b88@131c5bd},
  StateID{name=, type=class de.flapdoodle.embed.process.types.Name}=Name(mongod),
  StateID{name=, type=class de.flapdoodle.embed.process.io.directories.PersistentDir}=ImmutablePersistentDir(/root/.embedmongo),
  StateID{name=, type=class de.flapdoodle.embed.mongo.types.DatabaseDir}=DatabaseDir(/tmp/temp--bc4b9288-9fdf-48ff-93e3-208407acdc5a/mongod-database18207908853209293453),
  StateID{name=, type=class de.flapdoodle.embed.process.io.directories.TempDir}=ImmutableTempDir(/tmp/temp--bc4b9288-9fdf-48ff-93e3-208407acdc5a),
  StateID{name=, type=class de.flapdoodle.embed.mongo.types.DistributionBaseUrl}=DistributionBaseUrl(https://fastdl.mongodb.org/),
  StateID{name=, type=class de.flapdoodle.os.Platform}=Platform{operatingSystem=Linux, architecture=X86_64, distribution=Ubuntu, version=Ubuntu_22_04},
  StateID{name=, type=interface de.flapdoodle.embed.process.types.ProcessConfig}=ProcessConfig{daemonProcess=false, stopTimeoutInMillis=5000},
  StateID{name=, type=class de.flapdoodle.embed.process.types.ProcessEnv}=ProcessEnv({}),
  StateID{name=, type=interface de.flapdoodle.embed.process.io.ProcessOutput}=ProcessOutput{output=de.flapdoodle.embed.process.io.Slf4jStreamProcessor@3fd64d6b, error=de.flapdoodle.embed.process.io.Slf4jStreamProcessor@2f9a7d6f, commands=de.flapdoodle.embed.process.io.NamedOutputStreamProcessor@3f96ef2},
  StateID{name=, type=class de.flapdoodle.embed.mongo.types.SystemEnv}=SystemEnv({PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin, LANGUAGE=en_US:en, GIT_COMMIT=48c7032d862ded68c5a3f0a9a6312b71a53db517, GRADLE_VERSION=7.6.1, JAVA_HOME=/opt/java/openjdk, LANG=en_US.UTF-8, GRADLE_RUN_TASKS=clean full bakeDist bakeDistIt, GRADLE_HOME=/opt/gradle, HOSTNAME=b5f1e8eff2ee, LC_ALL=en_US.UTF-8, GRADLE_RUN_OPTS=-Pspotbug.xml.report=true, PWD=/home/gradle/service, JAVA_VERSION=jdk-17.0.7+7, HOME=/root}),
  StateID{name=, type=interface de.flapdoodle.embed.process.io.progress.ProgressListener}=de.flapdoodle.embed.process.io.progress.Slf4jProgressListener@12039ae0,
  StateID{name=, type=class de.flapdoodle.embed.mongo.packageresolver.Command}=MongoD,
  StateID{name=, type=interface de.flapdoodle.embed.process.distribution.Version}=GenericFeatureAwareVersion{5.0.5},
  StateID{name=, type=class de.flapdoodle.embed.mongo.config.Net}=Net{bindIp=127.0.0.1, port=34703, isIpv6=false},
  StateID{name=, type=class de.flapdoodle.embed.mongo.commands.MongodArguments}=MongodArguments{syncDelay=0, useDefaultSyncDelay=false, isVerbose=false, useNoPrealloc=true, useSmallFiles=true, useNoJournal=false, enableTextSearch=false, auth=false, master=false, replication=Storage{oplogSize=1, replSetName=test}, isConfigServer=false, isShardServer=false, params={}, args={}}

    at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
    at app//org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:245)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1344)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1188)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
    at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
    at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
    at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:961)
    at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:917)
    at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584)
    at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
    at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
    at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:310)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137)
    at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:59)
    at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:47)
    at app//org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1388)
    at app//org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:184)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:118)
    ... 73 more

Any ideas of what is going on?

Thanks in advance.

michaelmosmann commented 11 months ago

@t0ry do you have more of this stack trace? It failed to start the mongod server..

michaelmosmann commented 10 months ago

@t0ry still an issue?