Tag: Java

如何在开发环境中使用maven-docker以避免重复下载jar?

这是我的Dockerfile,但是如果我改了java代码,然后input“docker-compose up -d –build”到terminal,maven会重新下载jar,如何避免重复下载? Dockerfile: FROM maven:3.5.0-jdk-8 WORKDIR /app COPY pom.xml . COPY src ./src RUN mvn verify ENTRYPOINT ["java","-jar","target/cloud-user.jar"] 泊坞窗,compose.yml: version: "2" services: cloud-nginx: build: cloud-nginx image: registry.cn-beijing.aliyuncs.com/wangdali/cloud-nginx restart: always ports: ["80:80"] cloud-consul: image: consul:0.9.2 command: consul agent -dev -client 0.0.0.0 cloud-front: build: cloud-front image: registry.cn-beijing.aliyuncs.com/wangdali/cloud-front restart: always volumes: – ./cloud-front/static:/app cloud-user: build: cloud-user […]

从java代码运行docker build命令时出错

我使用下面的代码从Java运行docker build命令 – Process p = new ProcessBuilder("docker","build","-f",Dockerfile,"–build-arg",some arguments,"-t","com.test:t-v16",".").start(); 但是,ut给了我错误 – Docker构build需要恰好1个参数。 当使用Google时,有人提到,应该有一个点(。)在命令的最后。 我已经添加了,仍然面临这个问题。 相同的命令在命令行上工作。

通过Java / Spring Boot连接到Docker Elasticsearch实例

我正在运行Docker的Elasticsearch实例。 图像来自jHipsterdocker中心回购: jhipster / jhipster-elasticsearch / – 我使用图像v1.3.2,因为我需要Elasticsearch 2.4.0(符合项目的春季启动版本)。 我使用docker docker-compose启动ES容器以及Logstash和Kibana映像。 这是启动ES容器的设置: jhipster-elasticsearch: image: jhipster/jhipster-elasticsearch:v1.3.2 ports: – 9400:9200 – 9500:9300 volumes: – ./log-es-config/elasticsearch_custom.yml:/usr/share/elasticsearch/config/elasticsearch.yml 所以我使用REST和9400进行传输通信。 这是安装到ES config的elasticsearch_custom.yml中的configuration: cluster.name: "log-cluster" node.name: "log-node" http.host: 0.0.0.0 transport.host: 127.0.0.1 transport.tcp.port: 9500 transport.publish_port: 9500 当我启动容器,这是我从http://localhost:9400/_nodes : "cluster_name": "log-cluster", "nodes": { "xLsGj2DyTdCF89I7sAToVw": { "name": "log-node", "transport_address": "127.0.0.1:9500", "host": "127.0.0.1", "ip": "127.0.0.1", "version": […]

如何添加一个本地Maven项目作为依赖另一个Maven项目?

有两个maven项目 – proejct1和project2 。 com.project1.Object1.class依赖于com.project2.Object2.class ,我想添加project2作为依赖project1。 我知道在某些IDE(如Itellij)下这很容易设置,我正在使用IDE设置进行开发。 但是对于生产,我需要从任何IDE环境中构build独立的project1。 另外我正在使用Docker 。 如果有一种方法可以简化Docker中的这个问题,那将会很不错。 – root – project1 – src – com.project1.Object1.class – pom.xml – Dockerfile – project2 – src – com.project2.Object2.class – pom.xml – Dockerfile – docker-compose.yml

在Docker Toolbox中运行Java应用程序时出现SunCertPathBuilderException

我有一个Spring Boot Java应用程序,我想在一个Docker容器中运行。 应用程序通过HTTPS与内部networking上的另一个服务通信,但是当我运行Docker容器时,出现以下exception(由HTTPS连接引起): Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 我的开发机器上也有同样的exception,我在本教程中解决了这个问题 。 我试过了 许多build议指出, DOCKER_CERT_PATHvariables需要正确设置,但是当我运行docker-machine env default ,我看到它指向C:\Users\username\.docker\machines\machine\default 。 我试图获得证书,并把它放到这个文件夹使用这个build议 我试着添加-Dtrust_all_cert=true Java选项来禁用证书检查 我尝试从org.spotify.dockerfile-maven-plugin切换到org.spotify.docker-maven-plugin并使用此设置 我遵循这个教程,并设法将这个证书添加到/etc/ssl/certs/java/cacerts以及Docker映像中的/usr/lib/jvm/java-1.8-openjdk/jre/lib/security/cacerts 。 不幸的是,这些解决scheme都没有奏效。 我的问题 我该怎么办才能摆脱这个exception? 我的Dockerfile(应用以前的解决scheme之后) FROM openjdk:8-jdk-alpine # to enable file writes VOLUME /tmp ADD target/trip-force-0.1.0.jar app.jar # java cacerts COPY ./res/timur.domain.local.cer /timur.domain.local.cer ENV CACERTS […]

连接被拒绝

当我试图连接到塔兰图尔服务器,我得到以下错误: 线程“main”中的exceptionjava.net.ConnectException:Connection refused:在java.net.AbstractPlainSocketImpl的java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)上的java.net.DualStackPlainSocketImpl.connect0(Native Method)处进行连接。在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)处的java.net.PlainSocketImpl.connect(PlainSocketImpl.java)上的java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)处的doConnect(AbstractPlainSocketImpl.java:350) :172)在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)在java.net.Socket.connect(Socket.java:589)在java.net.Socket.connect(Socket.java:538)在java (Socket.java:434)在TarantoolKt.main(Tarantool.kt:37) 我的代码: class Tarantool { val client: TarantoolClient init { val config: TarantoolClientConfig = TarantoolClientConfig() config.apply { username = "test" password = "test" } val socketChannelProvider: SocketChannelProvider = SocketChannelProvider { _, p1 -> when(p1) { null -> { println("Trying to connect . . .") SocketChannel.open(InetSocketAddress("192.168.1.254", 3301)) // <- error } […]

Hadoop Docker设置 – WordCount教程

我正在按照教程来运行在这里提到的WordCount.java ,当我在教程中运行以下行 hadoop jar wordcount.jar org.myorg.WordCount /user/cloudera/wordcount/input /user/cloudera/wordcount/output 我得到以下错误 – 17/09/04 01:57:29 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 17/09/04 01:57:30 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 我用的docker图片是docker pull cloudera/quickstart 没有Hadoop和Docker的设置教程,所以如果能告诉我要克服这些问题的configuration将会很有帮助。

运行Java相当于“docker exec -ti {容器} curl”

我有一个docker容器configuration为运行Nginx和redirectstream量。 我正在docker容器外运行验收testing,并需要我的URL请求被redirect。 目前从命令行运行“docker exec -ti {container} curl”会返回我想要的响应,但是我的Unirest HTTP客户端并不是通过容器发送请求(因为我没有告诉它,不确定如何/如果我可以)。 我认为我的解决scheme是在我的testing中编程创build“docker exec curl”请求来实现这个结果,但似乎无法find如何。 如果有人有一个想法如何实现这一点,将不胜感激。

Android Espresso:java.lang.IncompatibleClassChangeError:类“java.lang.Class”没有实现接口“java.util.Collection”

我有一个90套Espressotesting课程的Android项目。 在我的两个工作站中,一切运行良好,但是当我在CircleCI中的docker容器中运行testing时,我对所有testing都有以下错误: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.IncompatibleClassChangeError: Class 'java.lang.Class' does not implement interface 'java.util.Collection' in call to 'java.lang.Object[] java.util.Collection.toArray()' (declaration of 'java.util.ArrayList' appears in /system/framework/core-oj.jar) at android.support.test.espresso.base.IdlingResourceRegistry.runSynchronouslyOnMainThread(IdlingResourceRegistry.java:314) 你可以在这里看到输出: https://circleci.com/gh/joaomneto/TitanCompanion/115 这个构build过去是有效的,但是我没有看到明显的差异来certificate这个问题是正确的。 一些时候,当我触发重build,一切正常。 这可能是由一个错误的图书馆造成的? 这是相关的configuration。 buildscript { ext.kotlin_version = '1.1.3-2' repositories { google() mavenCentral() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-beta1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.github.triplet.gradle:play-publisher:1.1.5' } } […] dependencies { […]

使用fabric-client-sdk,无法对多个peer进行grpc调用

通过使用fabric-sdk-java客户端,我尝试在Windows 7中使用Docker镜像在本地Hyperledger fabric V1.0networking设置中调用安装和实例化的chaincode 。 我能够调用和查询链接代码到peer0.org1.example.com ,但是当我尝试相同的对等peer0.org2.example.com得到以下错误 2017-09-13 13:22:45,382 main ERROR Channel:2241 – Sending proposal to peer0.org2.example.com failed because of: gRPC failure=Status{code=UNAVAILABLE, description=Channel closed while performing protocol negotiation, cause=null} java.lang.Exception: io.grpc.StatusRuntimeException: UNAVAILABLE: Channel closed while performing protocol negotiation at org.hyperledger.fabric.sdk.Channel.sendProposalToPeers(Channel.java:2241) at org.hyperledger.fabric.sdk.Channel.sendProposal(Channel.java:2155) at org.hyperledger.fabric.sdk.Channel.sendTransactionProposal(Channel.java:2089) at com.ibs.blockchain.client.utility.BlockChainUtility.sendProposal(BlockChainUtility.java:232) at com.ibs.blockchain.client.utility.BlockChainUtility.createFlight(BlockChainUtility.java:80) at com.ibs.blockchain.client.test.BCAPITest.main(BCAPITest.java:9) Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: Channel […]