这是我在ubuntu 14.04 LTS中安装nodejs的方式:
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)
当我用这个检查节点版本时:
node -v
Run Code Online (Sandbox Code Playgroud)
我明白了
v0.10.37
Run Code Online (Sandbox Code Playgroud)
但最新版本是4.2.6和5.5.0.我如何获得最新版本或更新版本?
我可以使用 PHP 和 Composer 创建一个 docker 容器:
FROM php:fpm
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
Run Code Online (Sandbox Code Playgroud)
是否有任何等效的方法可以为 node.js 和 npm 归档相同的内容?到目前为止我想到的唯一解决方案是:
如果我使用最后一种方法,当我复制所有内容时,容器的大小会变得臃肿(大约 908 MB)。所以我想知道是否有更聪明的方法。我必须复制哪些文件夹/文件才能实现节点和 npm 功能?
目前,我正在尝试在我的 Github Actions 工作流程中实现一个容器。但是,我很难弄清楚如何在容器本身中运行步骤。
使用以下工作流程:
name: Laravel
on: pull_request
jobs:
laravel-checks:
runs-on: ubuntu-latest
container: thomasowow/laravel-php:7.4
steps:
- uses: actions/checkout@v2
- name: Yarn
run: |
yarn
Run Code Online (Sandbox Code Playgroud)
此工作流程会导致以下错误:
/__w/_temp/c399fe7d-6cd2-4cdc-bb06-acc829cddbb8.sh: 1: /__w/_temp/c399fe7d-6cd2-4cdc-bb06-acc829cddbb8.sh: yarn: not found
##[error]Process completed with exit code 127
Run Code Online (Sandbox Code Playgroud)
它无法找到yarn。thomasowow/laravel-php:7.4本地运行可用yarn。我已经用 docker 镜像中应该可用的其他东西对此进行了测试,但也没有找到它们。看起来这些步骤没有在容器中执行。
该文档对语法进行了以下说明jobs.<job_id>.container:
用于运行作业中尚未指定容器的任何步骤的容器
我知道有些解决方案无需使用容器即可工作,我更愿意使用它。
有人遇到同样的问题或者知道我做错了什么吗?
@DannyB 指出我的图像包含以下入口点:
["/bin/bash", "--login", "-c", "tail -f /dev/null"]
Run Code Online (Sandbox Code Playgroud)
这可能是 Github 无法在容器中正常运行的原因。
镜像中需要安装 nvm、node 和yarn
SHELL ["/bin/bash", "--login", "-c"]
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
RUN …Run Code Online (Sandbox Code Playgroud)