Tag: spring

在maven中同时运行docker容器和spring启动应用程序是可能的吗?

我有一个连接到MongoDB实例的Spring Boot应用程序。 对于MongoDB实例,我使用docker,特别是使用fabric8中的maven docker插件。 我有这样的configuration: <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.21.0</version> <configuration> <logDate>default</logDate> <autoPull>true</autoPull> <images> <image> <name>mongo:3.0.15</name> <run> <ports> <port>27018:27017</port> </ports> <wait> <log>(?s)database system is ready to accept connections.*database system is ready to accept connections</log> <time>40000</time> </wait> <log> <prefix>mongo-container</prefix> <color>yellow</color> </log> </run> </image> </images> </configuration> </plugin> 它运行完美,如果我运行mvndocker:启动和在其他terminalmvn春季启动:运行。 我想知道的是,如果可以创build一些mavenconfiguration来运行一个像mvn docker这样的命令:start spring-boot:run。 谢谢!

spring-cloud-starter-stream-kafka不会创build提供给spring.boot.cloud.stream.bindings.output.destination的主题

我在spring引导应用程序中使用了spring-cloud-starter-stream-kafka和spring-cloud-stream jar for kafka。 jar的版本是1.1.1.RELEASE,我们正在创build一个名为Test的生产者。 以下同样是application.yml文件。 spring.boot.cloud.stream.bindings.output: destination: Test content-type: application/octet-stream producer: headerMode: raw requiredGroups: testConsumerGroup 有时候我们在Docker中运行应用程序(使用docker-compose)而不是创buildTest主题时,问题有时就是创build“output”作为主题。 对于kafka,我正在使用wurstmeister / kafka(Tag 0.9.0.1-1)图像和wurstmeister / zookeeper。 尝试更新属性,但它不工作。 更新:debugging后得知bindingServiceProperties不包含绑定,因此spring的云stream创build主题为“输出”

如何在log4j2中使用docker传递的环境variables?

我有一个基于spring-boot的应用程序,在dockerized环境中使用log4j2.xml 。 当我启动泊坞窗时,我传递了-e "LOG4J_PATH=/tmp/app.log"来指定日志应该到达的位置。 接下来,在log4j2.xml我使用fileName="${env:LOG4J_PATH}"但这不起作用。 我search了几个小时的networking,因此尝试了双$并尝试sys而不是env …什么都没有。 这个System.getenv("LOG4J_PATH")和(new EnvironmentLookup()).lookup("LOG4J_PATH")工作正常,所以我知道该variables正在传递给正在运行的图像确定,但由于某种原因,log4j不似乎捡起来了。 如果我不通过docker运行这个,并在我的.bash_profile设置LOG4J_PATH环境variables,它工作正常,所以这是LOG4J_PATH和log4j之间的东西。 我究竟做错了什么?

连接到Docker容器中的H2数据库

我有一个基本的Spring Boot Data JPA项目。 我要连接的h2数据库位于/tmp/customerdb.h2.db 。 当使用mvn spring-boot:run运行应用程序时mvn spring-boot:run一切正常。 应用程序连接到数据库,添加logging,并将添加的logging打印到控制台。 然后,我build立一个docker集装箱,并运行它。 docker文件如下所示: FROM java:8 VOLUME /tmp ADD jpa-docker-1.0.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar",/app.jar"] 当我运行容器时,出现以下错误: 2015-06-12 19:25:57.200 WARN 1 — [ main] ohengine.jdbc.spi.SqlExceptionHelper : SQL Error: 42102, SQLState: 42S02 2015-06-12 19:25:57.200 ERROR 1 — [ main] ohengine.jdbc.spi.SqlExceptionHelper : Table "CUSTOMER" not found; SQL […]

Spring Boot集成馈送由于不活动而hibernate

我用Spring Boot Integration做了一种定制的Rss Reader。 它每5秒读一次我的RSS源,如果有新项目,它会通过一些filter。 如果在过滤之后仍然存在,则将推送通知发送到我的智能手机。 它工作的很好,但是如果我的数据源上没有任何新的RSS项目几个小时(不确定多长时间),它不会触发了,当这些时间后,一个新的RSS条目出现。 我假设我的InboundChannelAdapter进入某种sleep模式。 有人知道确切的问题可能是什么? 我有一个InboundChannelAdapter读取我的RSS提要: @Bean @InboundChannelAdapter( value = "feedChannel", poller = @Poller(maxMessagesPerPoll = "100", fixedRate = "5000")) public FeedEntryMessageSource feedAdapter() throws MalformedURLException { Authenticator.setDefault(new Authenticator() { return new FeedEntryMessageSource(new URL("an url"), "feedChannel"); } 我有这些MessageChannel和PollerMetaData bean: @Bean public MessageChannel feedChannel() { return new QueueChannel(500); } @Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata […]

Docker-compose从链接迁移到networkingMongoDB数据库问题

我想通过使用链接到networkingDockerfile迁移,但我遇到一些问题。 我将首先描绘我的原始设置: 原始 – 链接 Dockerfile: FROM java:8 VOLUME /tmp ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' EXPOSE 8080 ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 泊坞窗,compose.yml: mongodb: image: mongo employee: image: jdruwe/docker_micro_maven links: – mongodb ports: – "8080" 新 – networking Dockerfile: FROM java:8 VOLUME /tmp ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' EXPOSE 8080 ENTRYPOINT […]

在Dockerfile中的Docker-machine ip

我有一个与Docker的Spring启动项目。 我的Dockerfile是这样的: …<many useful info>… CMD ["java", "-Djava.rmi.server.hostname=<DOCKER_CONTAINER_IP>", "javafile.jar"] 我需要在运行Docker时设置DOCKER_CONTAINER_IP(docker docker-machine ip default docker容器的docker-machine ip default )。 我该怎么做?

来自Docker环境variables的Spring属性

我试图在我的Spring 3.2.16应用程序中使用环境variables在Docker容器中的configuration文件之间切换。 在我的应用程序上下文中,我有两个configuration文件加载属性文件,我开发的一个(它工作100%)如下所示: <beans profile="dev"> <context:property-placeholder location="classpath*:META-INF/spring/dev.properties" /> </beans> 将应用程序打包到一个容器中时,没有多less内容,这是我的Docker文件: FROM jetty MAINTAINER Jan Vladimir Mostert "me@example.com" ADD ./target/ROOT.war /var/lib/jetty/webapps/ROOT.war EXPOSE 8080 运行时,注意-e标志来设置环境variables: docker run –name='_______' -d -p 8000:8080 –link rabbitmq:rabbitmq -e ENV=test _________________ 在test运行它时, prod , …默认configuration文件将在其中设置为cloud 。 这也适用于: <beans profile="cloud"> <context:property-placeholder location="classpath*:META-INF/spring/test.properties" /> </beans> 现在我想换出test.properties来从环境variables中获取configuration文件。 我试过使用systemProperties ,但它不工作: <beans profile="cloud"> <context:property-placeholder location="classpath*:META-INF/spring/#{systemProperties['ENV']}.properties" /> </beans> […]

在Eureka上注册Docker内部IP的微服务而不是公共的

我试图在Eureka上注册一些微服务。 他们部署在远程机器上,我希望能够在Eureka上看到机器的IP,但我所能看到的是一个私有IP,如172.17.0.8 ,这是不能从外部访问的。 由于这些微服务运行在Docker容器上,所以我知道我需要告诉服务器来取代主机的IP,而不是Docker的,但我真的不知道如何。 我在github上看到了这个问题 – > https://github.com/spring-cloud/spring-cloud-netflix/issues/432 并尝试: eureka.instance.prefer-ip-address=true eureka.instance.ip-address= 这不太合适。 有没有办法做到这一点,不涉及到我的服务或使用AWS的API添加代码?

java项目的Docker文件

我有一个项目,它使用Mave + spring + hibernate + mysql数据库,我想创build一个这个项目的docker镜像。 我用这两个命令做了 $ mvn package docker:build $ docker push name/name 我可以创build图像,但我目前没有主要function,所以当我尝试运行图像它给出错误没有find主要function。 我知道它应该有一个,但我不知道如何做到这一点。 我目前运行该项目通过右键单击 – >运行 – >在服务器上运行。 我正在使用弹簧工具套件。 我怎样才能创build一个主要function,做同样的事情? 所以当我试图运行我的docker图像时,它会好吗? CURRENT DOCKERFILE: FROM java:7 ADD name-ws.jar app.jar RUN sh -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]