[英]Docker node:8.16.0-alpine Error: not found: python2
我需要在我的 docker 容器中运行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
这是我的 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:
即使我跑
docker-compose up --build --force-recreate
还是行不通
如何解决这个问题?
谢谢!
问题是根本没有安装 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!
在完成所有npm rebuild
工作后,只需将卸载build-dependencies
的行移至,我认为它会起作用。
因为您使用的是alpine
图像,这是一个不包含python
的小图像。 您可以通过运行apk add
来安装python
并在安装节点模块后将其删除。
FROM node:alpine
RUN apk add --no-cache --virtual .gyp \
python \
make \
g++ \
&& npm install \
&& apk del .gyp
存在使用bcryptjs的替代解决方案。 性能可能并不重要,但是使用而不是应用变通方法来工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.