【发布时间】:2021-04-15 16:12:53
【问题描述】:
我有这个 DockerFile
FROM docker:17.12.0-ce as static-docker-source
FROM ubuntu:18.04
FROM python:3.8-slim-buster
ARG CLOUD_SDK_VERSION=335.0.0
ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
ENV PATH "$PATH:/opt/google-cloud-sdk/bin/"
COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker
RUN apt-get -qqy update && apt-get install -qqy \
curl \
gcc \
apt-transport-https \
lsb-release \
openssh-client \
git \
gnupg && \
pip install crcmod && \
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
apt-get update && \
apt-get install -y google-cloud-sdk=${CLOUD_SDK_VERSION}-0 \
google-cloud-sdk-app-engine-python=${CLOUD_SDK_VERSION}-0 \
google-cloud-sdk-app-engine-python-extras=${CLOUD_SDK_VERSION}-0 \
google-cloud-sdk-cbt=${CLOUD_SDK_VERSION}-0 \
kubectl && \
gcloud --version && \
docker --version && kubectl version --client
VOLUME ["/root/.config"]
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN curl -sL https://sentry.io/get-cli/ | bash -
RUN apt-get install -y nodejs build-essential pkg-config libcairo2-dev libjpeg-dev libgif-dev
ADD requirements.txt /
ADD requirements-prod.txt /
ADD submodules /
RUN python --version
RUN pip3 install --upgrade pip
RUN pip3 install -r /requirements.txt
RUN pip3 install -r /requirements-prod.txt
当我运行 node --version 它返回 v10.24.0 (我认为它应该是 8.x.y ....)。 当我运行 npm --version 它返回 bash: npm: command not found
node不应该也安装npm吗?
谢谢
【问题讨论】:
-
您正在安装旧的 nodejs 版本:
-
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - -
尝试使用
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - -
实际上,删除 FROM python:3.8-slim-buster 并通过 apt 添加 python 而不更改任何其他内容似乎可以解决问题。我知道这是 python 的旧版本,但这是一个旧项目,我不想升级它,冒着导致重大变化的风险......
-
很高兴你这样解决了它,为什么不创建一个答案并将其标记为已接受。
标签: docker npm dockerfile