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"
相关推荐
不灭的程序员阿澄3 小时前
在飞牛 NAS 上用 Docker 运行 DeepSeek Harness
运维·docker·容器
剑胆琴心静水深流3 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
Elastic 中国社区官方博客3 小时前
让大模型思考,让小模型执行:在 Elastic Workflows 中拆分 LLM 成本
大数据·运维·数据库·人工智能·elasticsearch·ai
艾伦_耶格宇4 小时前
【AI】-4 OpenCode Go 接入 Obsidian 完整指南
运维·开发语言·人工智能·agent·opencode
SXkehuirongsheng4 小时前
APP开发定制和模板开发哪个更实用?
大数据·运维·人工智能
虎王物联4 小时前
Docker Compose编排物联网平台后端:Nginx+PHP-FPM+EMQX+InfluxDB一键部署实战
物联网·nginx·docker
fb_123455 小时前
Linux三剑客超全精讲(grep+sed+awk)零基础入门|正则+实战面试题
linux·运维·服务器
HiDev_6 小时前
【非标自动化】2、认识元器件(节流阀)
运维·自动化
qq_185198696 小时前
SpringBoot-五-AOT
java·spring boot·后端
火车叼位6 小时前
Bash 实现 IDE 式补全的组件与配置
linux·运维