diff --git a/Dockerfile b/Dockerfile index 2f3f4d7..17cc181 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_IMAGE=node:22-alpine +ARG BASE_IMAGE=node:22.23.4-alpine@sha256:fe4f6d74e20370acb04ad889077d14d0f64a9c8ea6a42bc60cddf1e844699914 FROM ${BASE_IMAGE} AS build WORKDIR /app RUN apk add --no-cache openssl @@ -10,7 +10,15 @@ COPY tsconfig.json ./ COPY src ./src RUN npm run build -FROM ${BASE_IMAGE} +FROM build AS test +COPY scripts ./scripts +COPY examples ./examples +COPY docker-compose.yml .env.example ./ +CMD ["npm", "test"] + +FROM ${BASE_IMAGE} AS runner +ARG VCS_REF=0000000000000000000000000000000000000000 +LABEL org.opencontainers.image.revision=${VCS_REF} WORKDIR /app ENV NODE_ENV=production RUN apk add --no-cache openssl diff --git a/package-lock.json b/package-lock.json index dcf68b6..98f570f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,9 @@ "@types/node": "^22.10.2", "tsx": "^4.19.2", "typescript": "^5.7.2" + }, + "engines": { + "node": ">=22.23.4 <23 || >=24.22.1 <25" } }, "node_modules/@esbuild/aix-ppc64": { diff --git a/package.json b/package.json index d75bccb..d938252 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "youyidian-notification-center", "version": "1.0.0", "private": true, + "engines": {"node": ">=22.23.4 <23 || >=24.22.1 <25"}, "description": "由壹点内部项目统一钉钉单聊通知中心", "scripts": { "dev": "tsx watch src/index.ts",