# 使用 Alpine Linux 作为基础镜像,并命名为 builder 阶段 | |
FROM alpine AS builder | |
# 安装必要的软件包(Node.js、npm 和 Git) | |
RUN apk add --no-cache nodejs npm git | |
# 升级全局安装的 npm 到最新版本 | |
RUN npm install npm -g | |
# 创建名为 app 的非交互式用户 | |
RUN adduser -D app | |
# 切换用户为 app,后续命令将以该用户身份执行 | |
USER app | |
# 设置工作目录为 /home/app | |
WORKDIR /home/app | |
# 在 /home/app 目录下克隆指定的 Git 仓库 | |
RUN git clone https://github.com/louislam/uptime-kuma.git | |
# 设置工作目录为 /home/app/uptime-kuma | |
WORKDIR /home/app/uptime-kuma | |
# 在 uptime-kuma 项目目录下运行 npm 脚本 setup | |
RUN npm run setup | |
# 声明容器将监听的端口 | |
EXPOSE 3001 | |
# 指定容器启动时要运行的默认命令 | |
CMD ["node", "server/server.js"] |