小编dan*_*l9x的帖子

在图像更新后让Jenkins"更新"正在运行的docker容器的最佳方法

我们的组织对Docker和Jenkins来说相对较新.我们正在开发从(Java)源代码更新到运行应用程序的CI管道.

目前,Jenkins正在使用Cloudbees Docker构建和发布插件在成功构建后更新映像.它只是拉取基础(JBoss)图像并使用刚刚构建的App的WAR文件(通过Maven)更新它.

我们使用"通过SSH发送命令"构建步骤将SSH连接到服务器(当前正在运行)容器,使用指定的映像ID停止容器,然后重新拉动并随后运行容器.

但是,我知道必须有更好,更优雅的方式来做到这一点.令人惊讶的是,我无法找到有关如何操作的文档.任何意见,将不胜感激.请告诉我.

java jenkins docker

6
推荐指数
1
解决办法
2920
查看次数

使用 Jackson 的 JsonNode.findPath(String fieldName) 获取具有非唯一列名的字段的值

考虑以下(简化的)JSON 树结构:

  {
      "id": "1",
      "metaData": {
        "name": "nestedName"
      },
      "name": "rootName"
  }
Run Code Online (Sandbox Code Playgroud)

我将此结构放入 com.fasterxml.jackson.databind.JsonNode 对象中。要获取这些列的字符串值,我只需在 Java 代码中包含以下语句:

String id = jsonNode.findPath("id").textValue();
Run Code Online (Sandbox Code Playgroud)

我喜欢它不仅因为它简单,而且我的代码不必知道它正在解析的 JSON 树结构。我意识到,如果我特别想要 [root][name],我就必须有某种确定逻辑。

我的问题是,为了以某种方式区分/指定要获取的“名称”,我需要的最少逻辑量是多少?我已经研究了 JsonNode.findValues(String fieldName) 以获取值列表,但仍然不确定如何确定哪个值来自哪个“名称”以及如何选择“根”值,或者至少,最接近根的那个。

抱歉,如果这是一个重复的问题,但我找不到完全匹配的问题,所以再次询问。

java json jackson

4
推荐指数
1
解决办法
2万
查看次数

Java 8 LocalDateTime - 如何在String转换中保留.000毫秒

我有一个时间戳,我通过String以下格式收到:

2016-10-17T12:42:04.000

我正在通过以下行将LocalDateTime其转换为a 添加一些天(然后返回到a String):

String _120daysLater = LocalDateTime.parse("2016-10-17T12:42:04.000",
    DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")).minusDays(120).toString());
Run Code Online (Sandbox Code Playgroud)

但是,我注意到它返回的响应会减少.000毫秒.

我不确定确保保留确切模式的最简洁方法.现在我只是添加一毫秒,并且可能有一种方法可以将旧版本SimpleDateFormat加入其中,但我希望有一种更好的方法.

java format datetime datetime-format java-time

3
推荐指数
1
解决办法
7338
查看次数

标签 统计

java ×3

datetime ×1

datetime-format ×1

docker ×1

format ×1

jackson ×1

java-time ×1

jenkins ×1

json ×1