Tag: Java

Jenkinsfile maven插件在docker集装箱内

我使用Jenkins和Jenkinsfile来运行Docker容器中的构build。 我有一个简单的Java应用程序,我想使用Jenkins Artifactory插件来构build和部署到artifactory。 我的Jenkinsfile在下面 – node { def server = Artifactory.server "my-artifactory" def rtMaven = Artifactory.newMavenBuild() stage("Prepare environment"){ docker.image('driv/docker-maven-java-oracle').inside { checkout scm stage("Artifactory configuration") { rtMaven.deployer releaseRepo:'libs-release-local', snapshotRepo:'libs-snapshot-local', server: server rtMaven.resolver releaseRepo:'libs-release', snapshotRepo:'libs-snapshot', server: server } stage("Maven build") { def buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install' } } } } 但是,当我运行与上述Jenkinsfile生成我得到的错误 – java.lang.RuntimeException: […]

如何使docker日志在Java中

我想使用docker java客户端来创build和运行docker。 我想运行这样的东西: docker logs -f selenium-hub 如何在docker-java客户端上实现这个命令? 这是我的代码到目前为止: result = dockerClient.logContainerCmd(container.getId()) .withStdErr(true) .withStdOut(true) .withFollowStream(true) .withTailAll() .exec(logContainerResultCallback); try { logContainerResultCallback.awaitCompletion(); } catch (InterruptedException e) { throw new BaseException(e.getMessage()); }catch (Exception e){ throw new BaseException(e.getMessage()); } break; 为什么它不显示像docker表演? docker表演喜欢 "host": null, "port": 4444, "prioritizer": null, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher" "throwOnCapabilityNotPresent": true, "newSessionWaitTimeout": -1, "jettyMaxThreads": -1, "nodePolling": 5000, "cleanUpCycle": […]

如何在具有桥接模式的docker容器中运行Apache Spark 2.1驱动程序

我正尝试使用带有阴影的jar的客户端模式从dockerized Apache Spark应用程序连接到独立的Apache Spark群集。 我已经设置了以下属性 – spark.driver.port – spark.driver.blockManager.port – spark.driver.bindAddress with Docker Host's IP – SPARK_PUBLIC_DNS environment variable with Docker Host's IP. 我已经公开和映射设置端口与主机端口。 该应用程序显示在Spark Master上运行,但是没有任何响应正在从工作人员返回。 之前没有设置这些属性,它在火花大师处于等待状态时显示,设置它们显示为正在运行,但是没有响应从动作返回,则挂起。 如果我不将spark.driver.bindAddress设置为Docker主机的IP,则在检查工作人员的日志时,生成的驱动程序url是 – –driver-url spark://CoarseGrainedScheduler@XXXX:7000 The XXXX is the container IP. All workers binds to container's IP (like 172.17.0.45), which cannot be connected to and from master or driver. […]

无法在Docker容器和java进程中parsing主机

我正在运行基于运行java进程的高山linux(GoCD服务器)的docker映像。 java进程本身试图运行一些代码来克隆本地git仓库,但是我得到了一个Couldn't resolve hostexception。 我试图从容器内使用'git clone'手动克隆git仓库,并没有问题。 另外,我可以通过运行ping my-service-url.com而没有问题,也可以从主机上ping my-service-url.com相同的结果,从而在ping my-service-url.com容器内ping域。 看来Java解决名称有一些困难,但我不知道如何解决它。 我尝试用RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf创build一个新映像。 我读了另一个问题,可以解决它,但没有运气。 整个Dockerfile如下所示: FROM gocd/gocd-server:v17.5.0 RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf ADD json-config-plugin-0.2.jar /godata/plugins/external/json-config-plugin-0.2.jar ENTRYPOINT ["/docker-entrypoint.sh"] 我在AWS ECS上运行,ipv4转发设置为1,networking模式为bridge 。 我正在用尽想法。

Alpine Linux,非root用户,Java 7,Setcap:libjli.so:没有这样的文件或目录(java需要)

在我创build的Alpine Linux docker容器上。 我build立了一个非root用户来运行我的java(jboss)服务器。 我试图给它访问端口<1024上运行。结果,我不得不使用setcap为了提供Java的权限,以便在端口<1024上运行。 请注意,在Alpine Linux上authbind还不存在 ,所以这不是一个选项。 Setcap是推荐的方法。 请参阅最终评论: https : //github.com/gliderlabs/docker-alpine/issues/166 $ setcap cap_net_bind_service=+eip /opt/jdk1.7.0_51/bin/java \ cap_net_bind_service=+eip /opt/jdk1.7.0_51/jre/bin/java 但是,每个Oracle都有一个解决setcap问题的已知错误(和解决方法): http ://bugs.java.com/view_bug.do?bug_id=7157699 基本上,他们build议用下面的内容创build一个文件。 请注意,我已将java安装到“/opt/jdk1.7.0_51”,这是一个64位版本,所以目录path是不同的。 $ mkdir -p /etc/ld.so.conf.d $ echo "/opt/jdk1.7.0_51/jre/lib/amd64/jli" > /etc/ld.so.conf.d/java.conf $ cat /etc/ld.so.conf.d/java.conf /opt/jdk1.7.0_51/jre/lib/amd64/jli 但是,这不起作用。 我也尝试创build文件的链接: $ ln -s /opt/jdk1.7.0_51/jre/lib/amd64/jli/libjli.so /lib64/ $ ls -al /lib64 … … libjli.so -> /opt/jdk1.7.0_51/jre/lib/amd64/jli/libjli.so … […]

如何将dockerfile命令转换为maven xml条目?

我是通过maven docker插件dockerizing我的Java应用程序。 我发现了一个简单的docker-maven-plugin,它创build了一个简单的docker文件..我想知道如何将docker文件命令(如ADD,COPY,VOLUME等)转换成maven xml条目? 我的意思是我需要能够通过maven pom.xml自定义我的dockerfile 我找不到任何文件或教程… 感谢您的input。

在Java中通过spark连接到Cassandra时出现问题

我有服务器与docker,并创build3 Cassandra节点,2个工人火花节点和一个主火花节点。 现在我想通过Java应用程序连接到我的笔记本电脑的火花。 我的java代码是: public SparkTestPanel(String id, User user) { super(id); form = new Form("form"); form.setOutputMarkupId(true); this.add(form); SparkConf conf = new SparkConf(true); conf.setAppName("Spark Test"); conf.setMaster("spark://172.11.100.156:9050"); conf.set("spark.cassandra.connection.host", "cassandra-0"); conf.set("spark.cassandra.connection.port", "9042"); conf.set("spark.cassandra.auth.username", "cassandra"); conf.set("spark.cassandra.auth.password", "cassandra"); JavaSparkContext sc = null; try { sc = new JavaSparkContext(conf); CassandraTableScanJavaRDD<com.datastax.spark.connector.japi.CassandraRow> cassandraTable = javaFunctions(sc).cassandraTable("test", "test_table"); List<com.datastax.spark.connector.japi.CassandraRow> collect = cassandraTable.collect(); for(com.datastax.spark.connector.japi.CassandraRow cassandraRow : […]

如何在Docker中设置主机服务?

我试图在TeamCity docker agent上testing我的应用程序。 应用程序在gradle中运行内部泊坞窗。 这是我docker-compose.yml : version: '3' services: db: image: docker.int.address.com/postgres:9.6 ports: – 5432:5432 volumes: – ./init.sql:/docker-entrypoint-initdb.d/ environment: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres networks: my_net: ipv4_address: 172.19.0.3 networks: my_net: ipam: driver: default config: – subnet: 172.19.0.0/24 代理的输出: [13:13:59][docker] Successfully started process 'command 'docker-compose'' [13:14:00][docker] Some networks were defined but are not used by any service: […]

使用Spotify Docker Java客户端阻塞日志消息

描述 即时通讯使用以下function,以便能够阻止surefiretesting,直到docker集装箱启动。 这几乎总是有效的,但有些时候我得到如下所示的exception。 我不确定什么情况next会失败的dockerClient.logs或如果dockerClient.logs如何获取日志stream的问题。 我的问题是: 其他人如何使用docker客户端等待日志? 什么会导致exception看到? public void waitForLog(String messageToMatch) throws Exception { logger.info("Waiting for toc.log to signal start of service with log message: " + messageToMatch); LogStream logs = dockerClient.logs(container.id(), follow(), stdout()); String log; do { LogMessage logMessage = logs.next(); ByteBuffer buffer = logMessage.content(); byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); log = new […]

连接到Docker容器内运行的GRPC服务器

我想尝试从主机上的Docker容器中运行GRPC服务器。 我想看看是否可以通过在“主机”networking模式下运行来获得更好的性能。 我从java开始 CreateContainerResponse container = dockerClient.createContainerCmd("darthshana/lostvictoryserver:0.0.1-SNAPSHOT") .withVolumes(volume1) .withBinds(new Bind("/home/darthshana/gameEngine/lostVictoriesServer.properties", volume1)) .withExposedPorts(tcp5055) .withPortBindings(portBindings) .withNetworkMode("host") .withEnv("GAME_NAME="+gameName, "GAME_PORT=5055") .exec(); 这会导致以下泊坞窗容器启动 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b982b240ada2 darthshana/lostvictoryserver:0.0.1-SNAPSHOT "/usr/bin/java -ja…" About a minute ago Up About a minute angry_curie 在主机上,我可以看到它已经暴露了正确的端口 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State […]