【问题标题】:Specifying JVM Options in docker-compose File在 docker-compose 文件中指定 JVM 选项
【发布时间】:2020-04-05 18:41:42
【问题描述】:

目前我正在尝试将 JVM 选项传递给我的 docker-compose.yml 文件。而“环境:”中的这个 JVM_OPTS 部分似乎不起作用。还有其他方法可以将 JVM 选项传递给 docker-compose.yml 文件吗?

我的 DockerFile 映像也是来自 openjdk:8-jre-alpine。

而我的 docker-compose.yml 文件是这样的。

version: '3.1'
services:
  service:
    image: registry.gitlab.com/project/service/${BRANCH}:${TAG}
    container_name: serviceApp
    env_file: docker-compose.env
    environment:
      - JVM_OPTS=-XX:NativeMemoryTracking=summary
                 -XX:+StartAttachListener
                 -XX:+UseSerialGC
                 -Xss512k
                 -Dcom.sun.management.jmxremote.rmi.port=8088
                 -Dcom.sun.management.jmxremote=true
                 -Dcom.sun.management.jmxremote.port=8088
                 -Dcom.sun.management.jmxremote.ssl=false
                 -Dcom.sun.management.jmxremote.authenticate=false
                 -Dcom.sun.management.jmxremote.local.only=false
                 -Djava.rmi.server.hostname=localhost
    ports:
      - 8088:8088
    networks:
      - services
    working_dir: /opt/app
    command: ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/service.jar""]

networks:
  services:
    external:
      name: services

如果您询问这些论点,我正在尝试将 VisualVM 连接到本地 docker 容器。

【问题讨论】:

    标签: java docker docker-compose jvm dockerfile


    【解决方案1】:

    将环境声明从序列样式切换到值映射样式允许使用 YAML 多行字符串运算符“>”。它将所有行合并为一行。

    version: '3.1'
    services:
      service:
        image: registry.gitlab.com/project/service/${BRANCH}:${TAG}
        container_name: serviceApp
        env_file: docker-compose.env
        environment:
          JVM_OPTS: >
            -XX:NativeMemoryTracking=summary
            -XX:+StartAttachListener
            -XX:+UseSerialGC
            -Xss512k
            -Dcom.sun.management.jmxremote.rmi.port=8088
            -Dcom.sun.management.jmxremote=true
            -Dcom.sun.management.jmxremote.port=8088
            -Dcom.sun.management.jmxremote.ssl=false
            -Dcom.sun.management.jmxremote.authenticate=false
            -Dcom.sun.management.jmxremote.local.only=false
            -Djava.rmi.server.hostname=localhost
    
        ports:
            - 8088:8088
        networks:
            - services
        working_dir: /opt/app
        command: ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/service.jar""]
    
    networks:
      services:
        external:
        name: services
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多