Docker部署sprintboot后端项目

创建Docker网络

docker network create icjs

部署Redis

docker run -d \
  --network icjs \
  --name redis \
  -p 6379:6379 \
  redis:latest

数据持久化

docker run --restart=always --network icjs -p 6379:6379 --name redis -v /opt/docker/redis/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass icjs#cc

部署MySQL

docker run --name mysql --network icjs --restart=always --privileged=true \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=icjs#cc -p 3306:3306 -d mysql:latest

编写Dockerfile

# 使用 JDK 17 的基础镜像
FROM ghcr.io/graalvm/graalvm-ce:latest

# 设置工作目录
WORKDIR /app

RUN echo "Asia/Shanghai" > /etc/timezone
RUN mkdir -p /app/logs
RUN mkdir -p /usr/local/file
RUN mkdir -p /usr/local/pay-cert
# 将 jar 包复制到镜像中(假设 jar 包在当前目录)
COPY nice-coding-backend.jar /app/nice-coding-backend.jar

# 声明需要持久化的目录
VOLUME ["/usr/local/file", "/usr/local/pay-cert"]

EXPOSE 8081

# 启动 jar 包
ENTRYPOINT ["java", "-Xms5g", "-Xmx5g", "-Dfile.encoding=utf-8", "-jar", "/app/nice-coding-backend.jar", "--spring.profiles.active=prod"]

部署后端

docker run -e REDIS_HOST=redis -e REDIS_PORT=6379 -d \
  --network icjs \
  -p 8026:8081 \
  -v $(pwd)/data/file:/usr/local/file \
  -v $(pwd)/data/pay-cert:/usr/local/pay-cert \
  --name nice-coding-backend \
  nice-coding-backend

如果有相关中间件部署时需要加 --network icjs 将容器桥接到指定的网络

### 部署Spring Boot后端项目的方案 在1Panel平台上部署Spring Boot后端项目可以通过Docker容器化的方式实现。以下是具体的配置方法和技术细节: #### 1. 创建网络 为了确保服务之间的通信正常,需先定义外部网络 `1panel-network` 并将其标记为外部可用[^3]。 ```yaml networks: 1panel-network: external: true ``` #### 2. 编写Spring Boot容器编排模板 基于提供的其他容器编排模板案例,可以设计如下适用于Spring Boot的Docker Compose文件结构[^1]: ```yaml version: "3" services: springboot-app: container_name: springboot-container image: your-docker-repo/springboot-image:latest labels: createdBy: Apps networks: - 1panel-network ports: - 127.0.0.1:{host_port}:8080 environment: - SPRING_PROFILES_ACTIVE=prod - TZ=Asia/Shanghai volumes: - {完整路径}/logs:/app/logs restart: unless-stopped networks: 1panel-network: external: true ``` - **image**: 替换为实际构建好的Spring Boot Docker镜像地址。 - **ports**: 将 `{host_port}` 替换为主机上希望映射的具体端口号(例如:`8081`),并确保该端口未被占用[^2]。 - **volumes**: 如果需要持久化日志或其他数据,则挂载本地存储至容器内部指定位置。 #### 3. 构建Spring Boot镜像 如果尚未拥有现成的Docker镜像,可按照以下方式自行制作: ##### (a) 准备Dockerfile 在Spring Boot项目的根目录下创建名为 `Dockerfile` 的文件,内容如下: ```dockerfile FROM openjdk:17-jdk-slim AS build WORKDIR /app COPY . . RUN ./mvnw clean package -DskipTests && \ cp target/*.jar app.jar FROM openjdk:17-jre-slim WORKDIR /app COPY --from=build /app/app.jar /app/ CMD ["java", "-jar", "/app/app.jar"] ``` 此脚本假设您正在使用Maven作为依赖管理工具;如果是Gradle,请调整相应命令[^4]。 ##### (b) 执行打包与上传 通过以下指令完成镜像生成以及推送到私有仓库的操作[^5]: ```bash sudo docker build -t your-docker-repo/springboot-image:latest . sudo docker tag your-docker-repo/springboot-image:latest 192.168.1.9:5000/your-docker-repo/springboot-image:latest sudo docker push 192.168.1.9:5000/your-docker-repo/springboot-image:latest ``` #### 4. 测试访问 启动容器后,在浏览器输入形如 `http://<服务器IP>:<host_port>` 地址验证接口是否能够响应请求。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值