Докер узел: 8.16.0-alpine Ошибка: не найдено: python2 - PullRequest
2 голосов
/ 15 июня 2019

Мне нужно запустить npm rebuild node-sass --force внутри моего док-контейнера

Но я получил ошибку (даже после того, как уже установил python)

Error: Can't find Python executable "python", you can set the PYTHON env variable.

Это мой 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 dev

Это мой докер-сочинитель

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:

Даже когда я бегу

docker-compose up --build --force-recreate

Все еще не работает

Как это исправить?

Спасибо!

1 Ответ

1 голос
/ 15 июня 2019

Проблема в том, что Python просто не установлен.

Ваше родительское изображение, node:8.16.0-alpine не включает Python. Вы можете проверить это:

> docker run -it node:8.16.0-alpine sh
/ # python
sh: python: not found

Недоразумение может быть связано с тем, что вы временно устанавливаете python в этой строке:

RUN apk --no-cache --virtual build-dependencies add \
    python \
    ...

Он добавляется в виртуальный пакет build-dependencies, но сразу после завершения npm install вы запускаете apk del build-dependencies, который снова удаляет Python!

Просто переместите строку, где вы удаляете build-dependencies, после того, как вы сделали все npm rebuild вещи, и я думаю, что это будет работать.

...