dockerfile基本框架
FROM 基础镜像名
RUN 安装依赖
COPY/ADD 复制文件
EXPOSE 端口
CMD/ENTRYPOINT 启动命令1. 基础镜像 (Base Image)
FROM ubuntu:20.04指定构建新镜像所基于的基础镜像
2. 维护者信息 (可选)
LABEL maintainer="your-email@example.com"3. 镜像构建指令
# 设置工作目录
WORKDIR /app
# 复制文件到镜像
COPY . /app
ADD src.tar.gz /app/
# 设置环境变量
ENV NODE_ENV=productionRUN apt-get update && apt-get install -y \
package1 \
package24. 应用运行配置
# 暴露端口
EXPOSE 8080
# 启动命令
CMD ["node", "app.js"]
ENTRYPOINT ["./start.sh"]5. 优化指令
# 多阶段构建
FROM node:14 AS builder
# ... 构建步骤
FROM node:14-alpine
COPY --from=builder /app/dist /app/举例
# 注释:以 # 开头,不会执行
# 基础镜像(必须是第一条非注释指令)
FROM python:3.11-slim
# 设置维护者(已废弃,推荐用 LABEL)
# MAINTAINER yourname@example.com
# 设置环境变量
ENV APP_HOME=/app
ENV PYTHONUNBUFFERED=1
# 创建目录
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
# 复制文件(推荐按层优化,先复制 requirements.txt)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY . .
# 暴露端口
EXPOSE 5000
# 设置启动命令
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "app:app"]