使用Dockerfile在Laravel中引入node.js时,如果无法使用setup_.xx,

在使用Docker搭建PHP(Laravel)环境时,在引入node.js时,之前编写的脚本无法使用,导致出现错误。

通过将Dockerfile的内容更改为以下网站(https://github.com/nodesource/distributions/blob/master/README.md)上提到的内容,问题得到解决。

之前的Dockerfile内容(仅提取了node.js部分)

FROM php:8.2.0-apache
<・・・中略・・・>
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs

错误信息 (错识简讯)

 => ERROR [<アプリ名> stage-0 9/9] RUN apt-get install -y nodejs                                                                                                                              1.1s
------
 > [<アプリ名> stage-0 9/9] RUN apt-get install -y nodejs:
#0 0.177 Reading package lists...
#0 0.450 Building dependency tree...
#0 0.532 Reading state information...
#0 0.618 The following NEW packages will be installed:
#0 0.618   nodejs
#0 1.017 0 upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
#0 1.017 Need to get 28.1 MB of archives.
#0 1.017 After this operation, 188 MB of additional disk space will be used.
#0 1.017 Err:1 https://deb.nodesource.com/node_18.x bullseye/main arm64 nodejs arm64 18.17.1-deb-1nodesource1
#0 1.017   404  Not Found [IP: 172.67.10.205 443]
#0 1.033 E: Failed to fetch https://deb.nodesource.com/node_18.x/pool/main/n/nodejs/nodejs_18.17.1-deb-1nodesource1_arm64.deb  404  Not Found [IP: 172.67.10.205 443]
#0 1.033 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

The reason is…

我在 GitHub 上查看了 “nodesource README.md”,发现有一个新的更新,安装方法已经改变。
其中提到以前存在的安装脚本 “setup_XX.x” 将不再受支持,因此之前使用的脚本无法使用,显示为 404 错误(页面不存在)。

以下是本次实施的解决办法。

因此,我根据以下网站进行了Dockerfile的修改(只提取了有关node.js的部分):
https://github.com/nodesource/distributions/blob/master/README.md

FROM php:8.2.0-apache
<・・・中略・・・>
RUN apt-get update \
  && apt-get install -y ca-certificates curl gnupg \
  && mkdir -p /etc/apt/keyrings \
  && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
  && NODE_MAJOR=18 \
  && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
  && apt-get update && apt-get install nodejs -y

在修改了这段描述之后,成功地引入了Node.js。

第二天再次尝试了”setup_xx”后→出乎意料地成功安装了。

这一次当发生错误时,我用上述的方法进行了处理,但为了以防万一,我又用以前的Dockerfile进行了尝试,结果并没有发生错误。虽然我还不知道原因,但如果再次遇到类似的错误,请参考这个内容进行修正。

由于在构建时出现错误会带来困难,因此我们打算以修正后的内容进行构建。

广告
将在 10 秒后关闭
bannerAds