Tag: 弹簧引导

在OpenShift上Spring Bean注入失败

我在Spring Boot应用程序中添加了一个Spring Messaging的新Spring集成configuration。 应用程序在我的MAC上正确部署和运行。 但是,当部署到OpenShift(使用OpenJDK)或Docker运行时部署失败,并出现以下错误: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.messaging.MessageChannel' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=ftpChannel)} 下面是代码失败的一个简化的版本以相同的错误: import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.messaging.MessageChannel; import org.springframework.stereotype.Service; @Service public class FtpService { private final MessageChannel ftpClientInboundChannel; public FtpService(@Qualifier("ftpChannel") MessageChannel […]

spring云configuration服务器:SSH连接到私人configuration回购

正如它在这里所说,我需要在我的.ssh目录下的id_rsa和knowm_hosts文件的连接工作。 这在我的本地机器上正常工作。 如果我需要使用spotify docker-maven-plugin生成一个docker镜像,那么下面的dockerfile将完成这项工作。 FROM frolvlad/alpine-oraclejdk8:slim # Install ssh server RUN apk update RUN apk add openssh VOLUME /tmp ADD configserv-0.0.1-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' # Authorize SSH host RUN mkdir -p /root/.ssh RUN chmod 700 /root/.ssh # Add SSH keys COPY id_rsa >> /root/.ssh/id_rsa RUN chmod 600 /root/.ssh/id_rsa # Add gitlab public […]

在Docker上运行angular2 springboot应用程序,它显示索引页面,但没有加载angular度

我无法在docker上运行springboot angular2前端。 Angular2没有加载与docker战争容器,不明白为什么 <build> <finalName>${project.artifactId}</finalName> <defaultGoal>spring-boot:run</defaultGoal> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.2.7.RELEASE</version> <configuration> <addResources>src/main/webapp</addResources> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.0</version> <executions> <execution> <id>install angular2-contextmenu</id> <configuration> <executable>npm</executable> <arguments> <argument>install</argument> </arguments> </configuration> <phase>generate-resources</phase> <goals> <goal>exec</goal> </goals> </execution> <execution> <id>install npm</id> <configuration> <executable>npm</executable> <arguments> <argument>install</argument> </arguments> </configuration> <phase>generate-resources</phase> <goals> <goal>exec</goal> </goals> </execution> <execution> <id>build js</id> <configuration> <executable>npm</executable> <arguments> <argument>run</argument> […]

多个Docker容器共享一个数据库

我有一个包含三个小型Spring Boot应用程序的系统,每个应用程序都有一个不同的用途,其中包含REST端点。 这三个应用程序都是为了处理同一个数据库(MariaDB)。 目前,该系统作为四个独立的docker工作。 三个应用程序的三个docker容器,MariaDB的第四个容器(基于MariaDB Docker镜像)。 所有三个应用程序容器都使用–linknetworking模式连接到数据库容器。 在代码中,使用Spring Data Database Managerbuild立连接(注意:MariaDB容器被称为mariadb): DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setUrl("jdbc:mariadb://mariadb:3306/fi"); dataSource.setUsername("myUsername"); dataSource.setPassword("myPassword"); 这一切都按预期工作,但我注意到有很多人在堆栈溢出和类似的网站上说,在docker运行数据库是不理想的,不应该做生产。 尽pipe每个人似乎都同意这一点,但我还没有find具体的意见或教程来说明如何完成我所要做的事情。 最好,我希望在主机上运行MariaDB(一台机器托pipe所有的docker),并让每个docker都能够连接到主机。 我以前试过这个没有成功,总是无法连接到主机上的任何东西。 我最近尝试这样做需要build立一个docker集装箱,如下所示: Docker run -i -t –add-host="localhost:my.host.ip" -p 8080:8080 –name awesomeName javaimage /bin/bash 我find的这个页面是一个给我一个类似问题的人的答案,那个片段的作者宣称你可以使用localhost调用主机上的链接,就好像运行在我的docker中的Spring App在主机上运行一样机。 使用这个–add-host容器,我试图连接到主机上的数据库,如下所示: DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setUrl("jdbc:mariadb://localhost:3306/fi"); dataSource.setUsername("myUsername"); dataSource.setPassword("myPassword"); 尝试获取此连接失败,出现错误“无法连接到地址=(host = localhost)(port = 3308)(type = master):连接被拒绝”。 请注意,如果我直接在主机上运行应用程序,这些相同的证书和获取连接的方法就可以工作。 总而言之,我目前的Spring […]

Docker用户定义的networking – 通过容器主机名称的容器间通信

问题 – Spring-Boot消息监听器Docker Container无法连接到同一个Docker用户定义的networking中的ActiveMQ Docker容器 configurationSpring-Boot Message Listener来检查“ activemq.hostname ” <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover: (tcp://${activemq.hostname:0.0.0.0}:61616)?randomize=false" /> </bean> 为Spring-Boot Message Listener创buildDocker文件 – 将消息代理的主机名设置为事件代理 FROM openjdk:8-jdk-alpine EXPOSE 9001 RUN mkdir /app/ COPY target/event-ingestion-router-1.0.2.jar /app/ ENTRYPOINT exec java $JAVA_OPTS -Dactivemq.hostname='event-broker' -jar /app/event-ingestion-router-1.0.2.jar 创buildDockernetworking docker network create –driver=bridge messaging-network 使用主机名事件代理创build在“消息传递networking”上运行的ActiveMQ 代理 docker run -d -p 61616:61616 -p […]

Docker – Spring启动应用程序 – Windows上的Hello World

我遵循这个例子: http : //containertutorials.com/docker-compose/spring-boot-app.html但是当我运行Maven(Windows)在最后我得到这个错误: Caused by: com.spotify.docker.client.DockerException: ADD failed: stat /mnt/sda1/var/lib/docker/tmp/docker-builder201282403/gs-spring-boot-docker-0.1.0.jar: no such file or directory 我认为我必须在这里更改Dockerfile,但是如何? VOLUME /tmp ADD gs-spring-boot-docker-0.1.0.jar app.jar 有什么build议? 谢谢

Docker运行无法访问JAR文件

我正在使用XMLconfiguration方法为我的项目生成Dockerfile。生成的Dockerfile看起来不错,它得到很好的构build。 但是,当我运行它总是失败的错误。 我们为java创build了一个内部的基础图像,我将其称为baseImage 错误:无法访问jarfile echo-0.0.1.jar描述信息 fmp version : 3.5.31 Maven version (mvn -v) : Apache Maven 3.3.9 Kubernetes / OpenShift setup and version : N/A 我的POM文件: `io.fabric8 fabric8-maven-plugin 3.5.31 <configuration> <images> <image> <name>echo-image:latest</name> <build> <entryPoint> <arg>java</arg> <arg>-jar</arg> <arg>/deployments/echo-0.0.1.jar</arg> </entryPoint> <from>com/baseimage</from> <tags> <tag>latest</tag> </tags> <ports> <port>7000</port> </ports> <env> <JAVA_LIB_DIR>/deployments</JAVA_LIB_DIR> </env> <assembly> <basedir>/deployments</basedir> <descriptorRef>artifact</descriptorRef> </assembly> </build> </image> […]

Docker图像从开发机器上的本地开发机器到Linux机器

我创build了一个简单的spring-boot应用程序,并使用docker build Dockerfile创build了一个图像。 我想把这个镜像上传到Linux机器上,并在那里启动容器,在那里我可以find这个应用程序的图像推到Linux机器? 我正在使用Docker工具箱在Windows 10 Home Edition上运行docker命令。 提前致谢。

使用docker进行Spring Multipart上传 – 只读

您好,我正在尝试运行我的容器 – 只读,但是当我收到分段上传的请求时,我尝试创build一个临时文件: java.nio.file.FileSystemException: /tmp/undertow3773194840223053389upload: Read-only file system. 是否有可能只在内存中? 谢谢=)

无法准备上下文:无法评估Windows 10的Dockerfilepath中的符号链接

我在C:\Users\user_name\ dir下创build了Dockerfile.txt 。 文件内容是: FROM centos RUN yum install -y java VOLUME /tmp ADD /test-0.0.1-SNAPSHOT.jar myapp.jar RUN sh -c 'touch /myapp.jar' ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/myapp.jar"] 我将C:\Users\user_name\下的Dockerfile和uber jar移到C:\Users\user_name\下的PowerShell中执行。 docker build -t spring-boot-docker . 我得到这个错误: 无法准备上下文:无法评估Dockerfilepath中的符号链接:GetFileAttributesEx C:\ Users \ user_name \ Dockerfile:系统找不到指定的文件。 任何想法如何解决这个问题? 谢谢