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"
相关推荐
qetfw35 分钟前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
szxinmai主板定制专家2 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
叼烟扛炮3 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong3 小时前
Linux 有两个 “版本“
linux·发行版·内核版本
叼烟扛炮3 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
叼烟扛炮3 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Decay__3 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
久曲健的测试窝3 小时前
2026软件测试工具选型指南:双模式如何化解UI脚本维护难题
运维·人工智能·科技·aigc
Escalating_xu3 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
DarkAthena4 小时前
wslc ps 卡死的排查:一次「停容器不停 VM」引发的连环故障
docker