Я пытаюсь собрать приложение Pnpm Nx React, приложение отлично работает в режиме разработки. Я установил Nx глобально в своей системе. Теперь я пытаюсь собрать Dockerfile, чтобы создать образ для своего приложения. Это содержимое файла, которое я создал
Когда я пытаюсь собрать свой образ, на шаге 7 я получаю сообщение о том, что Nx установлен глобально
Но на шаге, когда дело доходит до сборки, я получаю сообщение об ошибке, сообщающее, что nx не найден:
Кто-нибудь может мне помочь, пожалуйста.
# Étape 1 : Utiliser une image Node.js officielle
FROM node:18 AS base
# Définir le répertoire de travail dans le conteneur
WORKDIR /app
# Copier les fichiers de configuration dans le conteneur
COPY .npmrc package.json pnpm-lock.yaml ./
# Installer pnpm globalement
RUN npm install -g pnpm
# Configure the global bin directory for pnpm
RUN pnpm config set global-bin-dir /root/.local/bin
# Add the global bin directory to PATH
ENV PATH=/root/.local/bin:$PATH
# Installez `nx` si ce n'est pas déjà fait
RUN pnpm add -g nx
# Check if nx is installed globally
RUN if ! nx --version > /dev/null 2>&1; then echo "NX is not installed globally"; exit 1; else echo "NX version: $(nx --version)"; fi
# Installer les dépendances du projet avec pnpm
RUN pnpm install
# --frozen-lockfile
# Copier le reste des fichiers du projet dans le conteneur
COPY . .
# Étape 2 : Build l'application avec NX
FROM base AS builder
# Construire l'application en utilisant NX
RUN pnpm nx build main-app --prod
# Étape 3 : Configurer l'image finale pour l'exécution
FROM nginx:alpine AS final
# Copier les fichiers de build de l'application vers Nginx
COPY --from=builder /app/dist/apps/main-app /usr/share/nginx/html
# Exposer le port 80 pour l'accès HTTP
EXPOSE 4200
# Commande par défaut pour lancer Nginx
CMD ["nginx", "-g", "daemon off;"]
#13 [base 7/9] RUN if ! command -v nx > /dev/null; then echo "NX is not installed globally"; exit 1; else echo "NX is installed globally"; fi
#13 0.359 NX is installed globally
#16 [builder 1/1] RUN pnpm nx build main-app --prod
#16 0.983 node:internal/modules/cjs/loader:1143
#16 0.983 throw err;
#16 0.983 ^
#16 0.983
#16 0.983 Error: Cannot find module '/app/node_modules/nx/bin/nx.js'
#16 0.983 at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
#16 0.983 at Module._load (node:internal/modules/cjs/loader:981:27)
#16 0.983 at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
#16 0.983 at node:internal/main/run_main_module:28:49 {
#16 0.983 code: 'MODULE_NOT_FOUND',
#16 0.983 requireStack: []
#16 0.983 }
#16 0.983
#16 0.983 Node.js v18.20.4
#16 ERROR: process "/bin/sh -c pnpm nx build main-app --prod" did not complete successfully: exit code: 1
#13 DONE 0.4s
Ангелина
Вопрос задан20 июля 2024 г.