Spaces:
Paused
Paused
Create Dockerfile
Browse files- Dockerfile +62 -0
Dockerfile
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 设定基础镜像变量
|
| 2 |
+
ARG BASE_IMAGE=louislam/uptime-kuma:base2
|
| 3 |
+
|
| 4 |
+
############################################
|
| 5 |
+
# 阶段 1: 自动克隆源码
|
| 6 |
+
############################################
|
| 7 |
+
FROM alpine/git AS fetch-source
|
| 8 |
+
WORKDIR /src
|
| 9 |
+
RUN git clone https://github.com/louislam/uptime-kuma.git .
|
| 10 |
+
|
| 11 |
+
############################################
|
| 12 |
+
# 阶段 2: 构建 Go 健康检查工具
|
| 13 |
+
############################################
|
| 14 |
+
FROM louislam/uptime-kuma:builder-go AS build_healthcheck
|
| 15 |
+
|
| 16 |
+
############################################
|
| 17 |
+
# 阶段 3: Node.js 构建层 (核心修改点)
|
| 18 |
+
############################################
|
| 19 |
+
FROM louislam/uptime-kuma:base2 AS build
|
| 20 |
+
USER node
|
| 21 |
+
WORKDIR /app
|
| 22 |
+
|
| 23 |
+
# 环境变量设置
|
| 24 |
+
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
|
| 25 |
+
ENV PLAYWRIGHT_BROWSERS_PATH=/app/pw-browsers
|
| 26 |
+
|
| 27 |
+
# 从 fetch-source 拷贝源码
|
| 28 |
+
COPY --chown=node:node --from=fetch-source /src /app
|
| 29 |
+
|
| 30 |
+
# --- 升级 Playwright 逻辑 ---
|
| 31 |
+
# 1. 强制修改 package.json 中的 playwright 版本为 1.56.0
|
| 32 |
+
# 2. 安装依赖
|
| 33 |
+
# 3. 下载并安装 1.56.0 对应的浏览器内核
|
| 34 |
+
RUN sed -i 's/"playwright": ".*"/"playwright": "1.56.0"/' package.json && \
|
| 35 |
+
npm install playwright@1.56.0 && \
|
| 36 |
+
npm ci --omit=dev && \
|
| 37 |
+
npx playwright install chromium
|
| 38 |
+
|
| 39 |
+
# 拷贝健康检查程序
|
| 40 |
+
COPY --chown=node:node --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck
|
| 41 |
+
|
| 42 |
+
RUN mkdir ./data
|
| 43 |
+
|
| 44 |
+
############################################
|
| 45 |
+
# 阶段 4: ⭐ 主运行镜像 (Release)
|
| 46 |
+
############################################
|
| 47 |
+
FROM $BASE_IMAGE AS release
|
| 48 |
+
WORKDIR /app
|
| 49 |
+
|
| 50 |
+
LABEL org.opencontainers.image.source="https://github.com/louislam/uptime-kuma"
|
| 51 |
+
ENV UPTIME_KUMA_IS_CONTAINER=1
|
| 52 |
+
# 确保运行环境能找到新版本的浏览器
|
| 53 |
+
ENV PLAYWRIGHT_BROWSERS_PATH=/app/pw-browsers
|
| 54 |
+
|
| 55 |
+
# 从构建层拷贝完整的 app 目录(含新版 Playwright 及其内核)
|
| 56 |
+
COPY --chown=node:node --from=build /app /app
|
| 57 |
+
|
| 58 |
+
EXPOSE 3001
|
| 59 |
+
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD extra/healthcheck
|
| 60 |
+
|
| 61 |
+
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
| 62 |
+
CMD ["node", "server/server.js"]
|