跳到主要内容

Java 规范

java 规范旨为你提供 java 服务如何部署到腾讯云托管的部署规范,该规范主要包含项目目录结构规范、开发环境规范、依赖管理规范等,以满足接入要求。

java 项目的示例可参考创建一个Spring Boot应用

项目规范

项目目录必须包含以下文件:

├── Dockerfile
├── pom.xml
├── settings.xml
└── src
├── main
│   ├── java
│   │   └── com
│   │   └── tencent
│   │   └── cloudrun
│   │   ├── CloudRunApplication.java
│   └── resources
│   ├── application.yaml

Dockerfile: 是一个文本文件,包含了一系列指令,用于定义如何构建一个 Docker 镜像。通过编写 Dockerfile,可以自动化地创建包含应用程序及其运行环境的镜像,实现环境一致性和快速部署。

pom.xml: 项目依赖管理文件。

settings.xml: maven 配置文件。

CloudRunApplication.java: 项目启动入口文件。

application.yaml: 项目配置文件。

pom.xml

java 语言默认依赖生成规范

Dockerfile

Note: 根据实际情况修改 FROM maven jdk 版本, CMD 行 cloudrun-1.0-SNAPSHOT.jar 修改成实际的 jar 名称

FROM maven:3.6.0-jdk-17-slim as build

# 指定构建过程中的工作目录
WORKDIR /app

# 将src目录下所有文件,拷贝到工作目录中src目录下(.gitignore/.dockerignore中文件除外)
COPY src /app/src

# 将pom.xml文件,拷贝到工作目录下
COPY settings.xml pom.xml /app/

# 执行代码编译命令
# 自定义settings.xml, 选用国内镜像源以提高下载速度
RUN mvn -s /app/settings.xml -f /app/pom.xml clean package

# 选择运行时基础镜像
FROM alpine:3.13

# 安装依赖包,如需其他依赖包,请到alpine依赖包管理(https://pkgs.alpinelinux.org/packages?name=php8*imagick*&branch=v3.13)查找。
# 选用国内镜像源以提高下载速度
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories \
&& apk add --update --no-cache openjdk17-jre-base \
&& rm -f /var/cache/apk/*

# 容器默认时区为UTC,如需使用上海时间请启用以下时区设置命令
# RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

# 使用 HTTPS 协议访问容器云调用证书安装
RUN apk add ca-certificates

# 指定运行时的工作目录
WORKDIR /app

# 将构建产物jar包拷贝到运行时目录中
COPY --from=build /app/target/*.jar .

# 执行启动命令.
# 写多行独立的CMD命令是错误写法!只有最后一行CMD命令会被执行,之前的都会被忽略,导致业务报错。
# 请参考[Docker官方文档之CMD命令](https://docs.docker.com/engine/reference/builder/#cmd)
CMD ["java", "-jar", "/app/cloudrun-1.0-SNAPSHOT.jar"]

配置规范

配置一般放到项目目录中, 或者使用环境变量配置。

端口

服务部署时,在云托管上指定服务的启动端口即可。