win10-Docker部署前后端项目

后端:

1)打好包 mvn clean package -DskipTests
2)查看target目录下是否有jar包
3)创建 Dockerfile(项目根目录下创建):

COPY 的jar包名称要和jar包名称一致

FROM eclipse-temurin:21-jre

WORKDIR /app

# 创建 SQLite 数据库目录
RUN mkdir -p /app/db

# 直接复制本地已构建好的 jar
COPY target/java-web-demo-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8091

ENTRYPOINT ["java", "-jar", "app.jar"]

4)写docker-compose.yml

services:
  java-web-demo:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: java-web-demo
    ports:
      - "8091:8091"
    volumes:
      # 持久化 SQLite 数据库文件
      - sqlite-data:/app/db
    restart: unless-stopped

volumes:
  sqlite-data:

5)启动 docker compose up -d --build
--build:Docker 会读取 Dockerfile,把你的 jar 包打包成一个镜像(Image)。
up -d:Docker 会基于刚才生成的镜像,创建一个容器(Container),并在后台运行。

第四步:验证是否成功
看运行状态:输入 docker compose ps。如果后端服务的 State 显示为 Up,说明容器启动成功了。
看启动日志:输入 docker compose logs -f。观察控制台输出,如果你看到了 Spring Boot 经典的 Started Application in x.xxx seconds 日志,并且没有报错,说明后端彻底跑起来了!
测试接口:打开浏览器或 Postman,访问 http://localhost:你的端口号/你的接口路径,看看能不能正常返回数据

前端

1)打包:npm run build
2)写DOCKERFILE

# Stage 1: 构建阶段
FROM node:22-alpine AS builder

WORKDIR /app

# 先复制依赖文件,利用 Docker 缓存层
COPY package.json ./

RUN npm install --registry=https://registry.npmmirror.com

# 复制源码并构建
COPY . .

RUN npm run build

# Stage 2: 生产运行阶段
FROM nginx:stable-alpine

# 复制构建产物到 nginx 静态目录
COPY --from=builder /app/dist /usr/share/nginx/html

# 复制 nginx 配置
COPY nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 9090

CMD ["nginx", "-g", "daemon off;"]

3)写Docker-compose-yml

services:
  my-vue-app:
    build: .
    ports:
      - "9090:9090"
    restart: unless-stopped

4)启动 docker compose up -d --build

posted @ 2026-08-04 18:24  LHX2018  阅读(6)  评论(0)    收藏  举报