Necesito ejecutar npm rebuild node-sass --force dentro de mi contenedor docker
Pero recibí un error (incluso después de que ya instalé Python)
Error: Can't find Python executable "python", you can set the PYTHON env variable.Este es mi Dockerfile
FROM node:8.16.0-alpine RUN mkdir /app WORKDIR /app # --no-cache: download package index on-the-fly, no need to cleanup afterwards # --virtual: bundle packages, remove whole bundle at once, when done RUN apk --no-cache --virtual build-dependencies add \ python \ make \ g++ \ bash \ && npm install \ && apk del build-dependencies RUN npm install -g nodemon COPY package.json package.json COPY client/package.json client/package.json RUN npm install RUN npm run install:client RUN npm uninstall node-sass && npm install node-sass RUN npm rebuild node-sass --force COPY . . LABEL maintainer="Varis Darasirikul" VOLUME ["/app/public"] CMD npm run devEste es mi docker-compose
version: '3' services: web: build: '.' container_name: node-web # env_file: # - '.env' ports: - '80:8000' - '5000:5000' - '3000:3000' volumes: - '.:/app' networks: - front-tier - back-tier # depends_on: # - redis # - db networks: front-tier: back-tier:Incluso cuando corro
docker-compose up --build --force-recreateSigue sin funcionar
¿Cómo arreglar esto?
¡Gracias!
El problema es que Python simplemente no está instalado.
Su imagen principal, node:8.16.0-alpine no incluye Python. Puedes verificar esto:
> docker run -it node:8.16.0-alpine sh / # python sh: python: not foundEl malentendido puede provenir del hecho de que está instalando Python temporalmente en esta línea:
RUN apk --no-cache --virtual build-dependencies add \ python \ ... Se agrega a las build-dependencies paquete virtual, pero justo después de que se completa npm install , ejecuta apk del build-dependencies que elimina Python nuevamente.
Simplemente mueva la línea donde desinstala build-dependencies después de haber hecho todas las cosas npm rebuild y creo que funcionará.
Porque está utilizando una imagen alpine , que es una imagen pequeña que no incluye python . Puede instalar python ejecutando apk add y elimínelo después de haber instalado los módulos de nodo.
FROM node:alpine RUN apk add --no-cache --virtual .gyp \ python \ make \ g++ \ && npm install \ && apk del .gypMás lectura: https://github.com/nodejs/docker-node/issues/282