Tag: 春季启动

使用Spring Boot和Docker的外部属性文件

我无法configuration一个Dockerfile来使用Spring Boot的外部属性文件。 这是我的Dockerfile: FROM java:8-jre VOLUME /tmp /var/gpm/config ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-cp","/var/gpm/config","-Dspring.config.location=classpath:application.properties","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 而在我的主机,我有这个path的属性文件:/var/gpm/config/application.properties 但是,不行。 UPDATE 我改变了Dockerfile: FROM java:8-jre VOLUME /tmp ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","–spring.config.location=file:/conf/application.properties"] 并运行这个: docker run -d -p 8080:8080 -v /opt/gpm/config/application.properties:/conf/application.properties –name gpm gpm-web:1.0 但是,该文件是像一个文件夹: root@b7349202b6d3:/# ls -la /conf/ total 8 drwxr-xr-x […]

春季启动应用程序无法链接在docker的领事

我试图用领事作为发现服务,另外两个春季启动应用程序向领事登记; 并把它们放入docker; 以下是我的代码:应用程序: server: port: 3333 spring: application: name: adder cloud: consul: host: consul port: 8500 discovery: preferIpAddress: true healthCheckPath: /health healthCheckInterval: 15s instanceId: ${spring.application.name}:${spring.application.instance_id:${server.port}} 2 docker-compose.yml consul1: image: "progrium/consul:latest" container_name: "consul1" hostname: "consul1" command: "-server -bootstrap -ui-dir /ui" adder: image: wsy/adder ports: – "3333:3333" links: – consul1 environment: WAIT_FOR_HOSTS: consul1:8500 还有另一个类似的问题在Docker中不能链接Consul和Spring Boot应用程序 ; 答案build议,应用程序应该等待领事充分利用depends_on工作,我尝试了,但没有工作; […]

如何正确构build使用Dockerfile的弹簧启动泊坞窗图像?

我有以下的spring启动项目结构: pwd /Users/eugene/Documents/Dev/Java/workspace/Springboot-Receiver-API tree . ├── Dockerfile ├── pom.xml ├── src │ └── main │ ├── java │ │ └── com │ │ └── myconpany │ │ └── myproject │ │ └── data │ │ ├── Application.java │ │ ├── ConsumerThreadPool.java │ │ ├── ErpConsumer.java │ │ ├── configs │ │ │ ├── ConsumerConfigFactory.java │ […]

Kubernetes豆荚在较大的机器上使用太多内存

我依然用kubernetes在我的脚下。 我们有一个基于spring-boot的应用程序,在AWS上运行Kubernetes 1.4.2上有17个微服务。 当我在4个m3.medium worker的AWS集群上运行这个应用程序时,我的容器都处于200-300MB的内存使用范围内(有一些例外)。 对于生产,我在4位m4工作人员上安装了相同的一组服务,并立即将我的内存移动到相同容器上的700-1000MB的内存中,并具有几乎相同的规格。 我试图找出这里的违规派对–Springboot,Docker或者Kubernetes。 有没有人见过这样的行为? 我知道我可以使用Kubernetes的限制来限制资源,但是我真的不想这样做,因为我知道应用程序在小型机器上可以正常运行,占用的空间也更小。 只是寻求一些build议,问题可能在哪里。 编辑:多一块或相关的信息。 我使用CoreOS稳定版1298.6.0作为主机操作系统映像。

docker-compose环境将覆盖jar中的variables,docker环境variables和jar中的variables如何映射?

例如,在docker-compose.yml中设置environment: EUREKA_PORT=8762 。 而jar中的variables${eureka.port=8761}将无效。 为什么selectenvironment: EUREKA_PORT=8762将覆盖${eureka.port=8761} ? docker环境variables和variables在jar中如何映射?

validationdocker化的Spring Boot应用程序对docker化和链接的ActiveMQ

我开始我的activemq容器,如下所示: docker run -p 61616:61616 -p 8161:8161 –name='activemq' -d \ -e 'ACTIVEMQ_LOGLEVEL=DEBUG' \ -e 'ACTIVEMQ_ADMIN_USER=bot' \ -e 'ACTIVEMQ_ADMIN_PASSWORD=blahblah' \ -e 'ACTIVEMQ_OWNER_LOGIN=bot' \ -e 'ACTIVEMQ_OWNER_PASSWORD=blahblah' \ -e 'ACTIVEMQ_JMX_LOGIN=bot' \ -e 'ACTIVEMQ_JMX_PASSWORD=blahblah' \ -v /data/activemq:/data/activemq \ -v /var/log/activemq:/var/log/activemq \ webcenter/activemq:latest 我的应用程序的application.yml具有以下内容: spring: activemq: broker-url: ${ACTIVEMQ_PORT_61616_TCP} user: bot password: blahblah 我开始我的应用程序容器像这样: docker run –name='myapp' \ -w /app/ -v […]

在Docker领事和Spring Boot服务 – 不注销

所以我们有用Spring-Boot编写的Java微服务,使用Consul进行服务发现和configurationpipe理,并在Docker容器中运行。 所有这些都在工作,但是当一个容器死亡或一个服务重新启动时,旧的service-id将永远不会在Consul中消失,永久的服务在Consul UI中显示为“Failing”,即使新容器已经注册并显示所有绿色。 我们没有使用心跳,但是我找不到有关领事与心跳检查之间区别的文档。 这是我的bootstrp.yml spring: application: name: my-service cloud: config: enabled: false consul: host: ${discovery.host:localhost} port: ${discovery.port:8500} config: watch: wait-time: 30 delay: 10000 profile-separator: "-" format: FILES discovery: prefer-ip-address: true instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 还有其他设置可以启用心跳,但是文档中提到了一些关于Consul群集的更多信息。 有没有人设法得到Consul和Spring Boot / Docker服务实际上自动注销? 它实际上不会造成任何实际的问题,但它使Consul UI很无用,实际上监视up / down服务。

如何同步在Docker容器上运行的Java应用程序的时间?

我是这样的docker文件: FROM anapsix/alpine-java:jre8 ADD service-god-sac-1.0.0-SNAPSHOT.jar app.jar ENTRYPOINT ["java", "-Xmx64m", "-XX:MaxMetaspaceSize=64m", "-jar", "/app.jar"] 当我编译和部署的应用程序设置时间使用这个: -v / etc / localtime:/ etc / localtime:ro 我注意到主机时间和包含时间是同步的,但是应用程序的日志显示了不同的时间,即UTC时间。 我怎样才能同步主机,容器和Java应用程序?

微服务体系结构的零停机部署

目前我正在开发基于微服务架构的应用程序。 作为主要技术,我们计划为每个微服务开发使用Spring Boot和Docker 。 其中一个目标是为用户提供零停机时间部署function。 我花了一些时间试图find一些解决scheme,并了解Blue Green Deployment (BGD)但有些方面仍然不清楚。 主要问题是数据库状态和版本兼容性。 例如,如果使用BGD ,成功部署后如何将所有数据更改从绿色迁移到蓝色轮廓? 我在Spring的Zero Downtime部署中发现了一个有趣的方法,但是我认为这种方法的应用程序版本和发布规划过程和向后兼容性要求太复杂了。 所以我想问下面的问题: 关于零停机时间部署过程概念的任何build议,由使用它的实际经验支持? 是否有任何支持“closures数据库”的应用程序(付费或免费)提供零停机时间部署function? PS 如果是零停机时间部署在StackOverflow.com中工作,这很有趣吗?

使用Intellij IDEA重新加载远程弹簧启动应用程序的例外

我试图使用spring devtools ,docker和IntelliJ来设置远程的spring-boot环境。 一切从这篇文章开始。 不幸的是,它随机失败,例外。 在configuration下面: Dockerfile FROM java:8 EXPOSE 8888 WORKDIR /app ADD build.gradle /app/build.gradle ADD gradlew /app/gradlew ADD gradle /app/gradle ADD src /app/src RUN ["chmod", "+x", "/app/gradlew"] 泊坞窗,compose.yml backend: build: . env_file: environment ports: – "8888:8888" volumes: – ./.gradle-docker:/root/.gradle command: "/app/gradlew clean bootRun" links: – db db: image: postgres:9.5.3 env_file: environment ports: – […]