Tag: 春季启动

在PCF中的Docker – 无法通过AMQP(spring cloud bus)连接到rabbitmq

我在玩Pivotal cloudfoundry和docker。 目前,我有一个春季启动应用程序,这是一个configuration服务器客户端连同spring的cloudbus。 如果我使用cf push demo-application target/my-jar-file.jar直接推送到PCF,这将cf push demo-application target/my-jar-file.jar 。 我现在正在尝试打包我的应用程序作为docker容器,并推入到PCF与cf push demo2 -o rraghur/demo 。 PCF创build一个容器并部署它 – 但spring的云端不起作用。 弹簧configuration确实工作,因为我在日志中看到以下内容 2016-11-30T22:23:58.771+05:30 [APP/0] [OUT] 2016-11-30 16:53:58.770 INFO 12 — [ main] cccConfigServicePropertySourceLocator : Fetching config from server at: https://config-67936b3e-1626-46b6-8117-480654f34e49.local.pcfdev.io 2016-11-30T22:24:00.588+05:30 [APP/0] [OUT] 2016-11-30 16:54:00.587 INFO 12 — [ main] cccConfigServicePropertySourceLocator : Located environment: name=demo-application, profiles=[production], […]

Docker中的spring-cloud-config构成https证书未find

我正在写spring云应用程序我的configuration服务点到我的存储库。 在我的开发机器中,一切工作正常,但是在docker-compose的帮助下创builddocker时,我的虚拟机出现以下错误: 2017-02-28T03:14:10.847459300Z sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) ~[na:1.8.0_91] at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[na:1.8.0_91] at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) ~[na:1.8.0_91] at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ~[na:1.8.0_91] at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) ~[na:1.8.0_91] at sun.security.validator.Validator.validate(Validator.java:260) ~[na:1.8.0_91] at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[na:1.8.0_91] at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[na:1.8.0_91] at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[na:1.8.0_91] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[na:1.8.0_91] at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[na:1.8.0_91] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[na:1.8.0_91] at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[na:1.8.0_91] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[na:1.8.0_91] […]

如何build立一个spring启动应用程序jar的docker映像?

假设我有一个build立在Spring引导应用程序之外的jar文件,如何创build一个docker映像来将这个jar部署到docker容器上。

使用Docker和AWS ECS运行Spring Boot微服务

我正在使用Spring Boot,Kafka和MongoDB开发一个简单的基于微服务的应用程序。 有4个基于Spring Boot的REST服务在MongoDB上执行CRUD(目前在所有服务之间共享),并向/从Kafka集群发布/轮询消息。 目前,我已经将他们全部部署在手工制作的AWS EC2实例上。 卡夫卡/动物园pipe理员有3个经纪人/实例。 没有复制/分片的MongoDb。 我想达到什么目的? 在由ECSpipe理的Docker容器中运行微服务。 能够扩展这些服务。 能够在ECS上创build专用环境(DEV,QA,UAT,PROD)。 运行Kafka和MongoDB集群,将复制和分片作为由ECSpipe理的容器。 我对Docker和ECS概念相当陌生,不能准确地find它是如何完成的。 我能够创buildDockerfile,镜像并推送到docker hub,并使用ECS上的一个服务(没有外部依赖)。 其中一个Dockerfile看起来像这样: FROM openjdk:8-jre-alpine EXPOSE 443 443 LABEL "author":"Kumar Sambhav Jain" COPY build/distributions/app.tar /opt/app/ RUN tar -xvf /opt/app/admin.tar -C /opt/app/ WORKDIR /opt/app/admin/bin ENTRYPOINT ["./admin"] 问题: – 什么是理想的或正确的方式来部署整个应用程序? 我需要每个环境(DEV,QA,UAT)的ECS集群还是每个服务types的ECS集群 – 两个服务需要在端口443/80上公开公开。 服务如何连接到在容器中运行的MongoDB和Kafka? 目前Kafka经纪人和mongo连接保持在application.yml文件中,如下所示: – spring: data: mongodb: host: 172.31.18.25 database: abcd […]

Docker容器无法连接到主机networking上的IP

我有一个包含三个小型Spring Boot应用程序的系统,每个应用程序都有一个不同的用途,其中包含REST端点。 这三个应用程序都是为了处理同一个数据库(MariaDB)。 目前,该系统作为四个独立的docker工作。 三个应用程序的三个docker容器,MariaDB的第四个容器(基于MariaDB Docker镜像)。 所有三个应用程序容器都使用–linknetworking模式连接到数据库容器。 每个应用程序泊坞窗都是从相同的图像启动,使用: docker run -i -t -p 8080:8080 –link mariadb:mariadb javaimage /bin/bash 这个docker系统目前正常工作。 所有三个应用程序都可以调用MariaDB,通过调用http:// localhost:8080 / pathToEndpoint,可以通过REST调用从主机访问每个应用程序。 该项目最近扩大了,并增加了新的要求。 我们使用Netflix Eureka作为服务查找点,将来可以帮助允许将这些Docker部署到任何位置,只需调用Docker的软件进行最less的更改即可。 Netflix Eureka要求我在应用程序启动时有效地“登入”。 这一切都是由Spring Boot本身处理的,所以当启动应用程序时,这个“检入”是启动过程的一部分。 尤里卡服务器与主机在同一networking上,并且暂时通过IP地址访问。 如果运行此Eureka签入组件的Spring Boot应用程序直接在主机上启动,则一切正常。 该应用程序成功呼叫尤里卡服务器,并通知该应用程序的存在。 如果我在同一台主机上的Docker容器中运行相同的应用程序,则连接被拒绝时将失败。 经过调查,我发现我甚至无法从Docker容器中ping尤里卡服务器的IP地址,解释为什么它失败。 我继续进一步testing什么不工作,并发现我可以ping外部网站,如谷歌没有问题,但我的networking服务器的任何内部是不可达的,当我尝试从Docker容器。 所以我的问题是,我错过了什么networkingconfiguration导致这个? 我认识到Docker有很多networkingconfiguration选项,但是我一直没有find有类似问题的人。 任何帮助表示赞赏。 谢谢!

在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 Boot,Docker,Discovery eureka

我有以下问题。 我有两个Springboot服务:服务A和服务发现尤里卡。 我有两个用例。 我想从本地开始 我想从aws ECS开始。 我把它们装在容器里 我用随机docker端口映射启动服务A: docker run -p 0: 8080 serviceA 之后,我有以下问题。 Docker服务向具有不正确端口的Docker发现服务注册。 服务A注册到Spring Boot Application 8080的端口,而不是docker端口。 如何告诉服务A注册docker的端口? 非常感谢你

如何将Spring Boot应用程序部署到Google Managed VM

我有一个Spring Boot应用程序,我试图找出将它部署到Google新的Managed VM环境(这些是能够运行Docker容器的VM)。 我开始下定义app.yaml的道路如下: application: myapp-1 version: 1 runtime: java api_version: 1 vm: true handlers: – url: /* servlet: org.springframework.web.servlet.DispatcherServlet init_params: contextAttribute: org.springframework.web.context.WebApplicationContext.ROOT 然后,我运行以下命令从我的应用程序根目录中进行testing: gcloud –verbosity debug preview app run . 我一直在做一些试验和错误,现在得到以下例外: Unknown url handler type. <URLMap secure=default static_files=None application_readable=None auth_fail_action=redirect require_matching_file=None static_dir=None redirect_http_response_code=None http_headers=None url=/* script=None upload=None api_endpoint=None expiration=None position=None login=optional mime_type=None > 我使用https://cloud.google.com/appengine/docs/java/configyaml/appconfig_yaml作为指南,但是我开始怀疑托pipeVM环境支持app.yaml格式。 […]

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 […]

在Docker中不能链接Consul和Spring Boot应用程序

我有以下configuration的Spring Boot应用程序: spring: thymeleaf: cache: false cloud: consul: host: consul port: 8500 discovery: prefer-ip-address: true instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 我想运行docker-compose(Docker 1.11.2,docker-compose 1.7.1): consul: image: progrium/consul:latest container_name: consul hostname: consulhost ports: – "8400:8400" – "8500:8500" – "8600:53" command: "-server -bootstrap-expect 1 -ui-dir /ui" collector-server: container_name: collector-server image: io.thesis/collector-server ports: – "9090:9090" links: – consul:consul 不幸的是,这是行不通的,我得到:com.ecwid.consul.transport.TransportException:java.net.ConnectException:连接被拒绝。 我完全不知道为什么它不能连接到Consul,因为我可以用这种方式连接到其他系统,例如rabbitmq。 谢谢你的任何想法!