Docker Compose Java 应用 command 多行参数示例
所属分类 docker
浏览量 17
Docker Compose Java 应用 command 多行参数示例
docker-compose.yml 配置
Java 应用 + 多行 command 启动参数
Docker Compose 支持 数组格式 和 竖线格式 两种多行 command,
推荐数组格式(更规范、无转义问题)。
数组格式(推荐)
每行一个参数,用 - 开头 无转义、无空格问题、Docker 原生支持、不易报错
语法严格,必须每行一个参数
version: '3.8'
services:
java-app:
image: openjdk:17-jdk-slim
container_name: my-java-app
working_dir: /app
volumes:
- ./demo.jar:/app/demo.jar
ports:
- "8080:8080"
# 极简多行 command
command:
- java
- -Xms256m
- -Xmx512m
- -jar
- demo.jar
- --spring.profiles.active=test
version: '3.8'
services:
java-app:
# 基础镜像(Java 运行时,根据你的项目修改版本)
image: openjdk:17-jdk-slim
# 容器名称
container_name: my-java-app
# 工作目录(jar 包存放路径)
working_dir: /app
# 挂载本地 jar 包到容器
volumes:
- ./target/demo.jar:/app/demo.jar
# 端口映射(主机:容器)
ports:
- "8080:8080"
# 环境变量
environment:
- TZ=Asia/Shanghai
- SPRING_PROFILES_ACTIVE=prod
- JVM_OPTS=-Xms512m -Xmx1024m
# ===================== 核心:多行 command 启动参数 =====================
# 写法1:数组格式(推荐!无语法错误,最稳定)
command:
- java
- ${JVM_OPTS}
- -jar
- demo.jar
- --server.port=8080
- --spring.datasource.url=jdbc:mysql://mysql:3306/test_db
- --spring.datasource.username=root
- --spring.datasource.password=123456
# 写法2:竖线 | 格式(纯字符串多行,适合复杂命令)
# command: |
# java ${JVM_OPTS} -jar demo.jar \
# --server.port=8080 \
# --spring.datasource.url=jdbc:mysql://mysql:3306/test_db \
# --spring.datasource.username=root \
# --spring.datasource.password=123456
# 可选:配套 MySQL 服务(Java 应用常用依赖)
mysql:
image: mysql:8.0
container_name: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=test_db
volumes:
- mysql-data:/var/lib/mysql
# 数据卷持久化
volumes:
mysql-data:
上一篇
下一篇
JDBC流式查询
docker容器内访问宿主机文件
Java应用镜像不同架构的区别
Docker Compose 常用排查命令
Docker Compose 设置 SpringBoot应用配置参数
springboot应用查看配置值及来源