Tag: spring

Spring启动数组在Docker / Marathon上的环境variables

我的应用程序的数组环境variables的formstableName[0]=tableName … property.one.two.tableName[x]=tableNameX 在本地运行时,当我将属性放在application.properties ,command-line args或环境variables中时,一切正常。 但是,一旦我尝试部署到马拉松,数组variables不再工作。 我试图在马拉松json数组中的env属性中传递它们。 我试过了: "env": { "property.one.two.tableName[0]":"tableName", …. } 和 "env": { "property.one.two.tableName": ["tableName", … ] … } 和 "env" { "tableName": [ {"property.one.two.tableName[0]" : "tableName"} {….} ] } 但没有任何工作。 有没有人得到这个工作?

Spring Actuator – 来自docker集装箱的度量聚合

我有一个Spring Boot REST服务应用程序。 此应用程序使用弹簧执行器来显示指标和健康信息。 我怎样才能从运行同一个应用程序的两个或多个容器中聚合这些信息?

无法从外部机器连接到kafka

我从Apache Kafka开始,当我尝试从外部机器连接时遇到问题。 使用下面的configuration,如果应用程序和docker在同一台机器上运行,所有工作正常。 但是当我把应用程序放在机器A和docker在机器B时,应用程序无法连接。 我的springKafka @Configuration有这一行到@Bean consumerFactory和producerFactory(想象我的机器与dockerIP = 10.10.10.10) props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "10.10.10.10:9092"); 而我的docker文件是这样的: version: '2' services: zookeeper: image: wurstmeister/zookeeper:3.4.6 ports: – 2181:2181 kafka: image: wurstmeister/kafka:0.10.1.1 environment: KAFKA_ADVERTISED_HOST_NAME: 0.0.0.0 KAFKA_ADVERTISED_PORT: 9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_TOPICS: "topic-jhipster:1:1,PROCESS_ORDER:1:1, PROCESS_CHANNEL:1:1" JMX_PORT: 9999 KAFKA_JMX_OPTS: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.rmi.port=9999" ports: – 9092:9092 – 9999:9999 kafka-manager: image: sheepkiller/kafka-manager ports: – 9000:9000 links: – […]

在当前项目和插件组中找不到用于前缀“docker”的插件

使用docker部署Spring Cloud项目,在pom.xml部署一些代码: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!– tag::plugin[] –> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <!– end::plugin[] –> </plugins> </build> 当我执行命令: mvn package docker:build ,它会抛出上面的错误: Downloaded: http://3.2.4.2:8888/repository/maven-public/org/apache/maven/plugins/maven-metadata.xml (14 KB at 5.7 KB/sec) Downloaded: http://3.2.4.2:8888/repository/maven-public/org/codehaus/mojo/maven-metadata.xml (21 KB at 7.3 KB/sec) [INFO] ———————————————————————— [INFO] Reactor […]

作为Docker容器运行时,Java Spring不会与Consul通信

我正试图解决我认为是运行微服务的常见用例。 在这种情况下,我正在用一个spring的云应用程序testing领事。 我试图用两种不同的方式来testing领事。 其中第一个运行在Docker容器中,另一个运行在Docker主机上。 然后,我试图启动一个spring的云容器,将与任何一个领事的例子。 当Spring云应用程序作为docker容器运行时,我无法使Spring云应用程序与领事谈话。 当Spring云应用程序以主机联网模式运行时,它可以parsinglocalhost端口,但是如果我希望运行多个图像实例,这不是一个可接受的解决scheme。 下面显示了将两个服务作为容器运行时,我的泊坞窗撰写文件的示例。 在这里,我试图通过环境variables来设置春季云中的领队uri,但却无法使用各种configuration使其工作。 如果任何人都可以指出这些function一起工作的例子,那将是非常有用的。 consul1: image: progrium/consul ports: – "8400:8400" – "8500:8500" – "8600:53/udp" – "8600:53/tcp" environment: GOMAXPROCS: 100 entrypoint: "/bin/consul" hostname: consul command: agent -log-level=debug -server -config-dir=/config -bootstrap -ui-dir /ui simpletest: build: simpletest hostname: simpletest environment: JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -Dspring.cloud.consul.host=consul1" ports: – 39041:7051 – 39052:7055 # d2fdockerroot_consul1_1 consul […]

在Spring Boot中,环境variables和@Value不能一起工作

我有一个Spring启动应用程序,连接到作为caching工作的Redis实例。 当我在开发环境中时,我有以下几点: — spring: profiles: default redis: host: localhost port: 6379 而我的cachingconfiguration类是这样的: @Configuration @EnableCaching public class CacheConfiguration { @Value("${redis.host}") String redisHost; @Value("${redis.port}") int redisPort; 在生产中,这个应用程序是Docker化的,我有以下docker-compose.yml文件: redis: image: tutum/redis ports: – "6379:6379" volumes: – /data app: build: . ports: – "8080:8080" links: – redis 而application.yml是: — spring: profiles: docker redis: host: redis port: 6379 要在Docker上启动应用程序,我使用-Dspring.profiles.active=docker运行,但是当应用程序启动时,会发生以下错误: Caused […]

Docker把db容器和spring启动连接起来,并获取环境variables

在docker中我有一个springboot应用程序容器和mongodb容器。 docker run -p 27017:27017 -d –name myMongo mongo 所以我先运行mongodb容器,然后在springboot容器中运行。 docker run -p 8080:8080 –name mySpringApp –link myMongo:mongodb mySpringApp 之后,我想在我的springboot应用程序中获取这些环境variables。 MONGODB_PORT=tcp://172.17.0.5:27017 MONGODB_PORT_5432_TCP=tcp://172.17.0.5:27017 MONGODB_PORT_5432_TCP_PROTO=tcp MONGODB_PORT_5432_TCP_PORT=27017 MONGODB_PORT_5432_TCP_ADDR=172.17.0.5 在application.properties文件中,我通常喜欢ip和port的常量configuration,所以它连接mongodb容器没有任何问题。 spring.data.mongodb.host=172.17.0.56 spring.data.mongodb.port=27017 但在该application.properties文件我有一种方法来获取该环境variables,顺便说一句,我试图#{systemEnvironment['MONGODB_PORT_5432_TCP_ADDR']}像这样的表示法。 但我的应用程序无法连接到MongoDB容器。 有没有什么好的做法,这种情况下,我也试图实现AbstractMongoConfiguration获取与@Value批注@Valuevariables。

如何处理config / properties文件中的密码

我们有不同团队之间的共享代码库。 是否有任何一种最佳的做法,将pipe理员凭据存储在弹簧属性文件中? 我不希望任何人看到用户名或密码。 我们使用docker,知道我可以使用docker的秘密,但我不想将密码绑定到docker。 我想要访问密码,即使我们不使用docker。

为什么docker CMD中jar的执行通配符不起作用?

我有一个Dockerfile与下面的CMD来启动我的春季启动应用程序: FROM java:8-jre # … CMD ["java", "-jar", "/app/file*.jar"] 当我尝试从创build的图像启动一个容器时,我得到: Error: Unable to access jarfile /app/file*.jar 但是,当我重载CMD而启动容器,并执行容器中的命令一切工作正常: docker run -it <imageId> bash root@<containerId>:/app# java -jar /app/file*.jar <spring boot app starts…> 是否有可能使用通配符java -jar命令使用docker CMDs? 请不要告诉我不要使用通配符。 我想用它原因的原因;-) 更新基于这个答案我能够解决它: CMD ["/bin/sh", "-c", "java -jar /app/file*.jar"]

Docker容器中的弹簧模板

所以我一直在试图使用java:8基本镜像来dockerify我的spring-mvc 4应用程序: 在docker中运行时遇到以下问题,但在docker之外,一切正常! 它与查找我的项目的模板文件有关: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/pages/**").addResourceLocations("classpath:/pages/"); } 作为一个注释,我已经试过在jar文件内部和jar文件之外运行模板文件。 urldebugging代码显示它find了正确的文件,但是当它试图使用它们时,我得到以下exception: engine_1 | jvm 1 |java.io.FileNotFoundException: class path resource [pages/saga-index.html] cannot be resolved in the file system for resolving its last-modified timestamp engine_1 | jvm 1 | at org.springframework.core.io.AbstractResource.lastModified(AbstractResource.java:155) engine_1 | jvm 1 | at org.springframework.core.io.AbstractFileResolvingResource.lastModified(AbstractFileResolvingResource.java:169) engine_1 | jvm 1 | at […]