首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker节点:8.16.0-高山错误:未找到: python2

Docker节点:8.16.0-高山错误:未找到: python2
EN

Stack Overflow用户
提问于 2019-06-15 22:31:22
回答 3查看 6.9K关注 0票数 4

我需要在我的docker容器中运行npm rebuild node-sass --force

但是我得到了一个错误(即使我已经安装了python )

代码语言:javascript
复制
Error: Can't find Python executable "python", you can set the PYTHON env variable.

这是我的Dockerfile

代码语言:javascript
复制
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

这是我的docker-compose

代码语言:javascript
复制
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:

即使我跑步的时候

代码语言:javascript
复制
docker-compose up --build --force-recreate

还是不能工作

如何解决这个问题?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2019-06-15 22:45:58

问题是Python根本没有安装。

您的父映像node:8.16.0-alpine不包含Python。您可以验证这一点:

代码语言:javascript
复制
> docker run -it node:8.16.0-alpine sh
/ # python
sh: python: not found

误解可能来自于这样一个事实,即您在该行上临时安装python:

代码语言:javascript
复制
RUN apk --no-cache --virtual build-dependencies add \
    python \
    ...

它被添加到虚拟包build-dependencies中,但就在npm install完成之后,您运行apk del build-dependencies再次删除Python!

只需在完成所有npm rebuild工作后,将卸载build-dependencies的行移动到该行,我认为它会起作用。

票数 6
EN

Stack Overflow用户

发布于 2020-09-07 14:34:55

因为您使用的是不包含python的小图像alpine图像。您可以通过运行apk add来安装python,并在安装节点模块后将其删除。

代码语言:javascript
复制
FROM node:alpine

RUN apk add --no-cache --virtual .gyp \
        python \
        make \
        g++ \
    && npm install \
    && apk del .gyp

更多信息:https://github.com/nodejs/docker-node/issues/282

票数 4
EN

Stack Overflow用户

发布于 2021-02-23 19:59:03

另一种解决方案是使用bcryptjs。性能可能并不重要,但是使用工作而不是应用变通方法!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56611283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档