e7098015de
- Add package.json for project metadata and dependencies - Implement CLI in src/cli.ts for managing SSL/TLS certificates - Create Azure Functions host configuration in src/function/host.json - Set up timer function in src/function/index.ts for scheduled certificate management - Define configuration loading and error handling in src/lib/config.ts - Implement DNS zone scanning and challenge management in src/lib/dns.ts - Develop ACME client for certificate issuance in src/lib/acme.ts - Create KeyVault store for managing secrets and certificates in src/lib/keyvault.ts - Implement provisioning logic in src/lib/provisioner.ts for issuing and renewing certificates - Add TypeScript configuration files for building the project
28 lines
509 B
Docker
28 lines
509 B
Docker
FROM node:24-alpine AS builder
|
|
WORKDIR /app
|
|
|
|
COPY package*.json tsconfig*.json ./
|
|
RUN npm ci --ignore-scripts
|
|
|
|
COPY src/ ./src/
|
|
RUN npm run build
|
|
|
|
RUN npm ci --omit=dev --ignore-scripts
|
|
|
|
|
|
FROM node:24-alpine AS runtime
|
|
WORKDIR /app
|
|
|
|
RUN addgroup -S acme && adduser -S acme -G acme
|
|
|
|
COPY --from=builder /app/node_modules ./node_modules
|
|
COPY --from=builder /app/dist ./dist
|
|
COPY --from=builder /app/package.json ./package.json
|
|
|
|
USER acme
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
ENTRYPOINT ["node", "dist/cli.js"]
|
|
CMD ["run"]
|