赞
踩
idea-2023(放心,旧版本也可以远程调试)
Java版本:17
docker版本:23.0.3
Java版本1:openjdk:17.0.2(基于Java17的项目)
Java版本2:adoptopenjdk:8-jdk-openj9(基于Java8的项目)
-
- FROM adoptopenjdk:8-jdk-openj9
-
- RUN mkdir -p /opt/projects/admin-api
- RUN mkdir -p /var/lib/docker/containers/admin-api/
-
-
- WORKDIR /opt/projects/admin-api
-
- COPY ./admin-api.jar ./
-
- #EXPOSE 2000
-
- # 启动服务
- ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002"
- CMD java ${JAVA_OPTS} -Djava.security.egd=file:/prod/./urandom -jar admin-api.jar --spring.profiles.active=prod

在jar启动命令中加入JVM参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002
作用:启动时支持远程调试,监听10002端口,请确保该端口已被防火墙放行,阿里云服务器的安全策略中也要放行。
- admin-api:
- build:
- context: admin-api
- container_name: admin-api
- environment:
- - TZ=Asia/Shanghai
- - JAVA_OPTS=-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002
- hostname: admin-api
- image: admin-api
- networks:
- mall4j-network:
- ipv4_address: 192.168.159.9
- ports:
- - "8112:8112"
- - "10002:10002"
- restart: always
- volumes:
- - ./cert:/cert
- - ./admin-api/log:/opt/projects/admin-api/log

你会发现,dockerFile和docker-compose.yml中都有远程调试配置,实际上,docker-compose.yml会覆盖dockerFile。
把 FROM adoptopenjdk:8-jdk-openj9 替换成 FROM openjdk:17.0.2
把
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002
替换成:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10002
到此结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。