一、Dockerfile 部署 Java 项目
假设项目是一个 Spring Boot 项目,使用的是 JDK 17,并且构建工具是 Maven。
Dockerfile 示例:
# Use a Maven image to build the project
FROM maven:3.8.5-openjdk-17 AS build
WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests
# Use an OpenJDK image to run the application
FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
# Expose the application's port
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
主要步骤:
- 使用 Maven 镜像构建 Java 项目。
- 构建完后将 JAR 文件复制到 OpenJDK 容器中。
- 通过
java -jar启动应用。
二、Dockerfile 部署 Python 项目
假设这是一个 Flask 项目,Python 版本是 3.9。
Dockerfile 示例:
# Use a Python base image
FROM python:3.9-slim
WORKDIR /app
# Copy requirements and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy the project code
COPY . .
# Expose the application's port
EXPOSE 5000
# Run the application
CMD ["python", "app.py"]
主要步骤:
- 选择 Python 基础镜像并安装依赖项。
- 复制项目代码到容器。
- 使用
python app.py启动应用。
三、Dockerfile 部署 Go 项目
假设是一个 Go Web 项目,Go 版本是 1.16+。
Dockerfile 示例:
# Use a Golang base image to build the project
FROM golang:1.16 AS build
WORKDIR /app
# Copy the Go modules definition and download dependencies
COPY go.mod go.sum ./
RUN go mod download
# Copy the project code and build it
COPY . .
RUN go build -o main .
# Use a smaller image to run the application
FROM alpine:latest
WORKDIR /app
COPY --from=build /app/main .
EXPOSE 8080
ENTRYPOINT ["./main"]
主要步骤:
- 使用 Go 镜像来编译项目。
- 使用轻量的 Alpine 镜像来运行可执行文件。
四、Dockerfile 部署 Vue 项目
Vue 项目通过 npm 构建,使用 nginx 来提供静态文件服务。
Dockerfile 示例:
# Use a Node.js image to build the project
FROM node:18 AS build
WORKDIR /app
# Copy project files and install dependencies
COPY package*.json ./
RUN npm install
# Build the Vue project
COPY . .
RUN npm run build
# Use an Nginx image to serve the built files
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
# Expose the default Nginx port
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
主要步骤:
- 使用 Node.js 镜像来安装依赖和构建项目。
- 使用 Nginx 镜像提供静态文件服务。
总结
- Java 项目:Maven 构建,OpenJDK 运行。
- Python 项目:安装依赖后直接运行 Python 文件。
- Go 项目:编译后使用轻量镜像运行。
- Vue 项目:使用 Node.js 构建,Nginx 提供服务。
448



被折叠的 条评论
为什么被折叠?



