在京东云(JD Cloud)上用 Java + Spring Boot 搭建开发环境,核心逻辑其实就三步:选对镜像、配好网络、写好脚本。别整那些虚的,直接上干货。
1. 基础设施选型:别折腾,用容器化思维
很多新人喜欢手动去 ECS(云服务器)里装 JDK、Maven、Git,那是上世纪的做法。在云原生时代,Docker 是标配。
- 方案 A(推荐):京东云容器服务 (JKE)
- 如果你团队有一定运维能力,直接用 JKE 部署 K8s。
- 创建一个 Namespace,拉取
openjdk:8-jre-slim或eclipse-temurin:17-jdk-alpine作为基础镜像。 - 优点:环境隔离彻底,迁移方便,扩缩容丝滑。
- 方案 B(快速上手):京东云 ECS + Docker
- 买一台轻量应用服务器(Lighthouse)或普通 ECS。
- 系统选 CentOS 7.9 或 Ubuntu 20.04/22.04。
- 安装 Docker Engine 和 Docker Compose。这是性价比最高、学习曲线最平缓的路径。
2. 具体落地步骤(以 ECS + Docker Compose 为例)
第一步:初始化服务器
登录你的京东云 ECS,执行以下命令准备环境:
# 更新源
yum update -y
# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 Docker Compose (如果版本较新可能自带)
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
第二步:项目结构标准化
在你的本地 IDEA 中,确保项目根目录有 Dockerfile 和 docker-compose.yml。
Dockerfile 示例 (多阶段构建,减小镜像体积):
# 构建阶段
FROM maven:3.8-openjdk-11 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
# 跳过测试提速构建,生产环境建议开启测试
RUN mvn clean package -DskipTests
# 运行阶段
FROM eclipse-temurin:11-jre-alpine
WORKDIR /app
# 复制构建好的 jar
COPY --from=build /app/target/*.jar app.jar
# 暴露端口
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
docker-compose.yml 示例:
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
# 数据库连接串,建议使用京东云 RDS 的内网地址
- SPRING_DATASOURCE_URL=jdbc:mysql://<rds-ip>:3306/db_name?useSSL=false&serverTimezone=UTC
- SPRING_DATASOURCE_USERNAME=user
- SPRING_DATASOURCE_PASSWORD=password
depends_on:
- redis
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
redis_data:
第三步:上传与部署
- 将代码推送到京东云代码托管(CodeHub)或 GitHub/GitLab。
- SSH 到 ECS,
git clone代码。 - 执行
docker-compose up -d --build。
3. 关键避坑指南
- 安全组配置:
京东云的 ECS 默认只开放 22 (SSH)。你必须在控制台的安全组规则里,手动放行 TCP 8080(应用端口)、6379(Redis,注意:Redis 不要直接暴露给公网,除非你有强密码且仅用于开发调试,生产环境务必绑定内网 IP)。 - 时区问题:
阿里云/京东云的镜像有时区差异。在Dockerfile或docker-compose环境变量中加入TZ=Asia/Shanghai,避免日志时间对不上。 - 内存溢出 (OOM):
Spring Boot 默认堆内存较大。如果在低配 ECS(如 1核 2G)上跑,务必在Dockerfile或启动参数中限制 JVM 内存:ENTRYPOINT ["java", "-Xmx512m", "-Xms256m", "-jar", "/app/app.jar"] - RDS 连接:
强烈建议京东云 ECS 和 RDS(关系型数据库服务)在同一地域(Region),甚至同一可用区。这样走内网流量免费,延迟极低。如果跨地域,不仅贵而且慢。
4. 进阶:CI/CD 自动化
手动 docker-compose up 适合个人小项目。如果要正式开发,接入京东云 CodePipeline 或 Jenkins:
- 代码 Push 到 Git。
- 触发 Webhook。
- Jenkins/JKE 自动执行 Maven Build -> Docker Build -> Docker Push 到京东云镜像仓库。
- 自动 SSH 到 ECS 执行
docker pull和docker-compose up -d。
这才是现代 Java 开发的正确姿势。环境即代码,不可变基础设施。
总结:
别在服务器上手动装软件,用 Docker 封装环境。用京东云 ECS 做宿主机,用 RDS 做数据库,用安全组控制访问权限。保持简单,保持可重复性。
云知道CLOUD