小编Jim*_*ter的帖子

Docker-compose 无法挂载多个命名卷

我正在使用 docker-compose 在这里构建我的 jenkins 容器,但我无法将 2 个命名卷安装到 1 个容器上。这是我所拥有的:

docker-compose.yml:

version: '2'
networks:
  nw:
    driver: bridge

volumes:
  jenkins-ansible:
  jenkins-data:

services:
  jenkins:
    image: jenkins
    ports:
      - "801:8080"
    volumes:
      - jenkins-ansible:/var/lib/ansible
      - jenkins-data:/var/jenkins_home
    networks:
      - nw
Run Code Online (Sandbox Code Playgroud)

我运行docker-compose up -d并且容器启动正常,但是当我 BASH 进入容器时,df -h只显示一个挂载,/var/jenkins_home。

如果我注释掉该-jenkins-data:/var/jenkins_home行,它将安装 ansible 卷。

那么为什么它只挂载一个卷呢?我找不到任何关于只允许为每个容器安装一个卷的内容,但这就是它的外观。

jenkins-data 挂载有什么特别之处,以至于它优先于 jenkins-ansible 挂载?(我试过交换 2 条安装线,没有变化)

提前致谢,

吉姆

docker docker-compose

5
推荐指数
1
解决办法
8093
查看次数

公开属性和Kotlin数据类的接口

我在Kotlin中有一个数据类:

data class Image (val name: String, val url: URL) {}
Run Code Online (Sandbox Code Playgroud)

我想通过REST(Spring Boot,JPA)提供这些图像的列表,但我只希望提供某些属性(在本示例中仅是名称,而不是URL)。从我阅读的内容中,我需要使用投影-仅使用'getName'函数定义接口:

interface HasName {
  fun getName () : String
}
Run Code Online (Sandbox Code Playgroud)

..然后设置数据类以实现此目的,并让RestController服务于HasNames而不是Images:

@GetMapping("/images")
fun getImages () : List <HasName> {
  return imageService.getImages()
}
Run Code Online (Sandbox Code Playgroud)

(或者那就是我在Java中要做的事情)。

但是,如果我在Kotlin中这样做:

data class Image (val name: String, val url: URL) : HasName {}  
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

意外覆盖:以下声明具有相同的JVM签名(getUrl()Ljava / net / URL;):

公共最终乐趣<get-url >():在com.figmentsignage.server.data.campaign.Image中定义的URL公共抽象乐趣getUrl():在com.figmentsignage.server.data.campaign.Image中定义的URL

有没有解决此问题的简单方法?我可以给该方法一个不同的名称,然后在Image类中重新定义它,但这有点混乱。或者,我可以在界面中定义'name'变量,然后在Image中覆盖它,这又很麻烦。理想情况下,我希望尽可能少地更改Image类。

spring-data-jpa kotlin spring-boot spring-rest

0
推荐指数
1
解决办法
53
查看次数