Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例

目录

前端项目

项目地址:git clone https://gitee.com/dukuan/vue-project.git

复制代码
# cat Dockerfile
FROM node:16-alpine AS builder
COPY vue-project /opt/vue-project
WORKDIR /opt/vue-project
RUN npm install 
RUN npm run build 
FROM nginx:1.25
COPY --from=builder /opt/vue-project/dist /usr/share/nginx/html/
CMD ["nginx","-g","daemon off;"]

Java项目

项目地址:git clone https://gitee.com/dukuan/spring-boot-project.git

监听端口:8761

Java项目需要下载maven依赖,依赖默认存放在/root/.m2路径下;在Dockerfile编译过程中需要使用缓存挂载,进行重复利用。

复制代码
# cat Dockerfile
FROM maven:3.5.3 AS builder
COPY spring-boot-project /opt/spring-boot-project
WORKDIR /opt/spring-boot-project
RUN --mount=type=cache,target=/root/.m2 \
mvn clean package -DskipTests

FROM openjdk:8u342-jre
COPY --from=builder /opt/spring-boot-project/target/spring-cloud-eureka-0.0.1-SNAPSHOT.jar /opt/app.jar
WORKDIR /opt
CMD ["java","-jar","app.jar"]

GO语言项目

项目地址:https://gitee.com/dukuan/go-project.git

监听端口:8080

复制代码
# cat Dockerfile
FROM golang:1.15-alpine AS builder
# 设置国内go代理
ENV GOPROXY=https://goproxy.cn,direct
COPY go-project /opt/go-project
WORKDIR /opt/go-project
RUN --mount=type=cache,target=/go/pkg \
go mod download && go build -o app main.go
FROM alpine:3.23
WORKDIR /opt
COPY --from=builder /opt/go-project/app ./
CMD "./app"

# cat Dockerfile
FROM golang:1.15-alpine AS builder
# 设置国内go代理
ENV GOPROXY=https://goproxy.cn,direct
COPY go-project /opt/go-project
WORKDIR /opt/go-project
RUN --mount=type=cache,target=/go/pkg \
go mod download && go build -o app main.go
FROM alpine:3.23
WORKDIR /opt
COPY --from=builder /opt/go-project/app ./
CMD "./app"
相关推荐
Lvan的前端笔记5 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
姜鱼问生5 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*6 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
xcs194056 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
天启HTTP7 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_7 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时8 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
IT研究所9 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
BLUcoding9 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom