Node 18-alpine non espone 'crypto' come global dichiarato: la libreria @shopify/shopify-api getCryptoLib() fa 'crypto?.webcrypto' -> ReferenceError 'crypto is not defined' -> validateAppProxyHmac fallisce -> 400 su ogni richiesta app proxy. Node 22 (come in dev) espone crypto global -> HMAC ok -> 200. Diagnosi: log Fly mostravano 'crypto is not defined' prima di ogni 400; verificato con firma app-proxy calcolata a mano (ora 200 + form recesso). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mv83a29B4eFv5ixoj6PoE1
22 lines
430 B
Docker
22 lines
430 B
Docker
FROM node:22-alpine
|
|
RUN apk add --no-cache openssl
|
|
|
|
EXPOSE 3000
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
COPY package.json package-lock.json* ./
|
|
|
|
RUN npm ci --omit=dev && npm cache clean --force
|
|
# Remove CLI packages since we don't need them in production by default.
|
|
# Remove this line if you want to run CLI commands in your container.
|
|
RUN npm remove @shopify/cli
|
|
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
|
|
CMD ["npm", "run", "docker-start"]
|