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

浙公网安备 33010602011771号