php镜像 dockerfile 里编排安装 nodejs、npm、yarn,并配置国内镜像源

以下是一个示例的 Dockerfile,用于在 PHP 镜像中编排安装 Node.js、npm 和 yarn,并配置国内镜像源:

# 使用官方的 PHP 镜像作为基础镜像
FROM php:latest

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    curl \
    unzip

# 安装 Node.js
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs

# 安装 npm 和 yarn
RUN npm install --global npm@latest
RUN npm install --global yarn@latest

# 配置国内镜像源
RUN npm config set registry https://registry.npm.taobao.org
RUN yarn config set registry https://registry.npm.taobao.org

# 运行命令行程序
CMD ["/bin/bash"]

这个 Dockerfile 通过使用 curl 命令下载 Node.js 安装脚本并运行,然后使用 apt-get 安装 Node.js。接着,使用 npm 安装最新版本的 npm 和 yarn。最后,使用 npm config setyarn config set 命令配置国内镜像源。

你可以使用以上 Dockerfile 构建一个镜像。在构建镜像的过程中,Docker 将会根据 Dockerfile 中的指令逐行执行,并生成一个新的镜像。

在 Dockerfile 中安装 Node.js 库的最佳方式是使用 WORKDIR 指令将工作目录切换到你的 PHP 项目目录中,然后运行 npm 命令进行安装。以下是一个示例:

# 使用官方的 PHP 镜像作为基础镜像
FROM php:latest

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    curl \
    unzip

# 安装 Node.js
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs

# 安装 npm 和 yarn
RUN npm install --global npm@latest
RUN npm install --global yarn@latest

# 切换工作目录到项目目录
WORKDIR /var/www/html/a

# 配置国内镜像源
RUN npm config set registry https://registry.npm.taobao.org
RUN yarn config set registry https://registry.npm.taobao.org

# 安装 laravel-mix 库
RUN npm install --save-dev laravel-mix

# 运行命令行程序
CMD ["/bin/bash"]

在以上示例中,使用 WORKDIR 指令将工作目录切换到 /var/www/html/a,然后运行 npm install --save-dev laravel-mix 命令来安装 laravel-mix 库。请根据你的项目目录结构进行相应调整。

当构建镜像时,Docker 将会在指定的工作目录中运行命令,安装指定的库。

在 Dockerfile 中更换 apt-get 源可以通过在 Dockerfile 中修改 /etc/apt/sources.list 文件来实现。以下是一个示例:

# 使用官方的 PHP 镜像作为基础镜像
FROM php:latest

# 将 /etc/apt/sources.list 备份
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 将国内源的 sources.list 复制到 /etc/apt 目录下
COPY sources.list /etc/apt/

# 更新 apt-get 源
RUN apt-get update

# 安装系统依赖
RUN apt-get -y install curl unzip

# 安装 Node.js
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get -y install nodejs

# 安装 npm 和 yarn
RUN npm install --global npm@latest
RUN npm install --global yarn@latest

# 配置国内镜像源
RUN npm config set registry https://registry.npm.taobao.org
RUN yarn config set registry https://registry.npm.taobao.org

# 运行命令行程序
CMD ["/bin/bash"]

在这个示例中,我们首先将 /etc/apt/sources.list 文件备份,然后通过 COPY 指令将一个自定义的 sources.list 文件复制到 /etc/apt 目录中,该 sources.list 文件包含了中国国内的源。接着,我们使用 apt-get update 更新 apt-get 源。最后,我们按照之前的步骤继续安装 Node.js、npm、yarn,并配置国内镜像源。

你可以根据你自己需要更换 apt-get 源的 sources.list 内容。将你需要的 sources.list 文件放在和 Dockerfile 相同的目录下,并修改 Dockerfile 中的 COPY 指令相应地指向你的 sources.list 文件。

如果你没有自己的 sources.list 文件,你可以在 Dockerfile 中直接写入命令来更改 apt-get 源。以下是一个示例:

# 使用官方的 PHP 镜像作为基础镜像
FROM php:latest

# 更换 apt-get 源为中国国内源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list \
    && sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

# 更新 apt-get 源
RUN apt-get update

# 安装系统依赖
RUN apt-get -y install curl unzip

# 安装 Node.js
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get -y install nodejs

# 安装 npm 和 yarn
RUN npm install --global npm@latest
RUN npm install --global yarn@latest

# 配置国内镜像源
RUN npm config set registry https://registry.npm.taobao.org
RUN yarn config set registry https://registry.npm.taobao.org

# 运行命令行程序
CMD ["/bin/bash"]

在这个示例中,我们使用 sed 命令修改 /etc/apt/sources.list 文件中的源地址,将原来的 deb.debian.orgsecurity.debian.org 替换为中国国内的源地址 mirrors.aliyun.com。然后,我们使用 apt-get update 命令更新 apt-get 源。最后,我们按照之前的步骤继续安装 Node.js、npm、yarn 并配置国内镜像源。

这种方法不需要 sources.list 文件,直接在 Dockerfile 中更改源地址。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值