Tag: spring boot

问题使用Docker-compose链接Docker中的容器

我正在使用Docker来准备我的微服务架构。 我正在尝试使用docker-compose将一个容器与另一个容器链接起来。 基本上我有一个postgressql图像的容器,以及一个用Spring开发的java微服务,它应该连接到数据库容器。 所以我在docker-compose.yml中设置了一个链接,并使用以下命令将db容器ip作为“db”引用: – "JAVA_OPTS=-Dpostgres.host=db" 不过,我得到以下错误docker开始微服务: 引起:java.lang.IllegalArgumentException:无法parsing值“jdbc:postgresql:// $ {postgress.host}:5432 / docker”中的占位符“postgress.host” 所以基本上这个占位符不能解决,但通常docker组成应该照顾设置这个系统variables指向db容器的IP地址吗? 我做错了什么? 在涉及的文件下面: 泊坞窗,compose.yml: version: "2" services: microservices: build: ./microservices container_name: microservices links: – db – consul environment: – "JAVA_OPTS=-Dpostgres.host=db" consul: image: consul container_name: consul ports: – "8500:8500" db: image: postgres container_name: local-postgres9.6 ports: – "5432:5432" environment: POSTGRES_PASSWORD: docker POSTGRES_USER: docker application.yml的微服务: server: […]

使用spring boot maven插件重新打包后,JAR文件中缺less资源

我的应用程序使用一些额外的文件,我有资源文件夹内。 当我使用Maven进行常规构build并将我的应用程序打包到JAR中时,我可以看到我的所有资源,以便解压缩该文件。 但是当我创build一个docker镜像时,我使用了spring-boot-maven-plugin来使我的JAR文件可执行。 出于某种原因, 我的资源没有被添加到新的重新包装的JAR中 。 此外,我甚至无法解压,因为它已经损坏。 这是我在我的pom.xml中设置重新打包目标的方式: <id>prod</id> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.3.RELEASE</version> <configuration> <mainClass>ApplicationName</mainClass> <executable>true</executable> <arguments> <argument>–spring.profiles.active=prod</argument> </arguments> <!–<addResources>true</addResources>–> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <!–<includeSystemScope>true</includeSystemScope>–> <!–<layout>JAR</layout>–> </configuration> </execution> </executions> </plugin> </plugins> </build> 我想补充说,当我在泊坞窗中运行我的图像它工作正常, 但所有需要的资源都缺less 。 有没有人遇到同样的问题? 或者,也许你可以build议如何解决它。

将envvariables传递给DOCKER Spring Boot

我有一个SpringBoot应用程序,它的Dockerfile如下。 我有不同的环境,如本地/ dev / qa / prod的application.properties。 当我在IDE中本地运行应用程序时,我在VM选项中传递了-Dspring.profiles.active = local ,以便加载application-local.properties。 作为docker容器运行,我构build了一个包含所有application.properties的图像。 即,对于所有的环境,它只是相同的泊坞窗图像。 当我在一个环境中运行映像时,我想以某种方式让SpringBoot了解它的开发环境,所以它必须加载application-dev.properties。 我正在使用AWS ECS来pipe理容器。 FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar EXPOSE 8080 ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

与docker连接到MySQL的春季启动

我想在SpringBoot应用程序中包含Docker,并将mysql作为依赖容器链接。 无需docker我手动执行这样的脚本: CREATE DATABASE project_manager_prod; create user 'prod_admin'@'localhost' IDENTIFIED BY 'prod'; create user 'prod_admin'@'%' IDENTIFIED BY 'prod'; GRANT update ON project_manager_prod.* to 'prod_admin'@'localhost'; GRANT select ON project_manager_prod.* to 'prod_admin'@'localhost'; GRANT insert ON project_manager_prod.* to 'prod_admin'@'localhost'; GRANT delete ON project_manager_prod.* to 'prod_admin'@'localhost'; 之后,我执行SQL设置数据库结构。 create table… 但现在,当我想使用mysql作为链接容器,我有一些设置泊坞窗图像存储在我的本地磁盘(-v / my / own / datadir:/ var / lib / […]

DockerFile与Filebeat的SpringBoot应用程序

我有一个简单的Docker的Spring Boot App,有了这个简单的DockerFile FROM openjdk MAINTAINER matteoroxis ADD target/example-service.jar example-service.jar ENTRYPOINT ["java", "-jar", "/example-service.jar"] EXPOSE 2222 我有必要使用Filebeat将日志发送到logstash环境; 如何使用我的DockerFile启动Filebeat?

Docker插件:java.io.FileNotFoundException:/ src / main / docker / Dockerfile gradle-docker失败

我试图运行在OSX(MBP) 春季启动示例 ,我得到以下exception(尝试buildDocker任务)。 我确定我已经正确configuration了docker,因为我可以运行命令docker-machine run hello-world并接收正确的输出。 Caused by: java.io.FileNotFoundException: /src/main/docker/Dockerfile (No such file or directory) at se.transmode.gradle.plugins.docker.image.Dockerfile.fromExternalFile(Dockerfile.groovy:45) at se.transmode.gradle.plugins.docker.image.Dockerfile$fromExternalFile.call(Unknown Source) at se.transmode.gradle.plugins.docker.DockerTask.buildDockerfile(DockerTask.groovy:223) at se.transmode.gradle.plugins.docker.DockerTask.build(DockerTask.groovy:238) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) … 54 more 其他validation是我可以运行gradle-docker默认构build任务(即distDocker)没有任何问题。 当我尝试在gradle脚本上执行构build任务后,发生问题。 // tag::task[] task buildDocker(type: Docker, dependsOn: build) { push = true applicationName = jar.baseName dockerfile = file('/src/main/docker/Dockerfile') doFirst { copy { from jar into […]

使用Gradle的SpringBoot应用程序的通用Docker镜像和Dockerfile

根据https://spring.io/guides/gs/spring-boot-docker/ ,我们可以使用应用程序的硬编码名称和版本为SpringBoot应用程序创buildDocker映像。 例如: 的src /主/搬运工/ Dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD gs-spring-boot-docker-0.1.0.jar app.jar RUN sh -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 但是,更改应用程序的名称或版本将会破坏您放置在build.gradle任务中的Docker Build命令。 的build.gradle task buildDocker(type: Docker, dependsOn: build) { push = true applicationName = jar.baseName dockerfile = file('src/main/docker/Dockerfile') doFirst { copy { from jar into stageDir } } } gradle buildDocker命令通过从应用中分级Dockerfile和可执行Jar来执行“docker build”来构build一个映像。 题 考虑到Dockerfile中的名称是静态的,我怎样才能改变这个设置,以便在构buildDocker镜像时更改版本,甚至是我的SpringBoot应用程序的名称都不会中断我的构build?

由于NoClassDefFoundError,无法启动embedded容器

我的SpringBoot应用程序与Eclipse IDE很好地工作,但是当我在Docker Container上运行我的应用程序时,它的图像生成良好,但是当我运行图像时,它将得到ClassDefnotfoundexception并且无法启动embedded容器。 How can I fix it?` In Dockerfile FROM java:8 EXPOSE 8080 ADD /target/docker.ras.jar docker.ras.jar RUN sh -c 'touch /docker.ras.jar ENTRYPOINT ["java","-jar","docker.ras.jar"] In pom.xml i also use maven plugin <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>example.docker.ras</groupId> <artifactId>docker.ras</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> </parent> <name>docker.ras</name> <url>http://maven.apache.org</url> <properties> <java.version>1.8</java.version> <start-class>docker.ras.App</start-class> <docker.image.prefix>springio</docker.image.prefix> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> […]

为弹簧引导微服务configurationDocker容器

我是新的docker工人,我想知道如何在使用docker撰写yml文件时在maven本地安装依赖项。 就像我有3个微服务和那些我在docker-compose.yml文件中configuration的服务,但是我想要使用Maven安装在本地maven中安装一个依赖项,这样我就可以通过导入在其他微服务中使用这个依赖项。 这可能吗 ? 提前致谢。

如何在Spring引导应用程序中使用Active Directory docker映像进行授权

这是我第一次与Docker和AD合作。 我正在实现一个使用Active Directory进行授权的Spring启动应用程序。 我已经通过LDAP教程https://spring.io/guides/gs/authenticating-ldap/ 我已经下载了Active Directory的docker镜像。 https://hub.docker.com/r/pitkley/samba-ad-dc/#environment-variables 现在我想在我的本地机器上使用这个docker图像进行授权。 Docker镜像正在运行, $ docker run -i -t 041144877f9f /bin/bash root@3c01c419c248:/# 如何在春季启动应用程序中使用此映像进行授权? 我应该期待从这个docker形象? 我使用mac,java,spring boot。 以下是我的代码, @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest() .fullyAuthenticated() .and() .formLogin(); } @Override public void configure(AuthenticationManagerBuilder auth) throws Exception { auth .ldapAuthentication() .userDnPatterns("uid={0},ou=people") […]