目录
前端项目
项目地址: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"