J'essaie de créer une image docker d'une application Next.js/React qui utilise TypeScript.
TypeScript est installé et je suis capable d'exécuter une compilation localement sans docker.
Cependant, au fur et à mesure que l'image du docker se construit, j'arrive au point suivant:
Step 8/10 : RUN npm run build
---> Running in ee577c719739
> [email protected] build /app
> next build
Creating an optimized production build...
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
It looks like you're trying to use TypeScript but do not have the required package(s) installed.
Please install TypeScript by running:
npm install --save-dev TypeScript
If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files).
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `next build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
J'ai déjà installé TypeScript. C'est très déroutant pour moi.
L'image Docker que j'utilise ressemble à ceci:
FROM gcr.io/companyX/companyX-node-base:12-Alpine
# Copy in the project files
COPY . .
# Clean
USER root
RUN rm -fr node_modules
ENV NODE_ENV=production
COPY package*.json ./
RUN npm install && \
npm cache clean --force
RUN npm run build
EXPOSE 3000
# Running the app
CMD [ "npm", "start" ]
Crédit à @Ahmed Rebai
A dû ajouter TypeScript manuellement aux dépendances dans le fichier Package.json. L'installation normale de npm l'ajouterait uniquement à dev.