无法在管道作业中部署其他包
Can't Deploy additionnal packages in a pipeline job
我在持续交付中使用了一个nodejs App。最近我安装了一个无法启动的包(puppeteer),因为它需要一些共享库(xlib)。此问题已记录 (here),我只需要安装其他软件包。
所以我在我的 "BUILD" 工作中添加了额外的行:
#!/bin/bash
npm install
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-6 libx11-xcb1 libxcb1 .......
它安装成功(虽然有几个错误),构建作业以成功结束。 (6 个升级,133 个新安装,0 个删除,55 个未升级。)
但是当我在 "deploy" 阶段启动应用程序时。该文件仍然丢失!
我安装正确了吗?
2020-05-20T08:27:03.83+0000 [APP/PROC/WEB/0] ERR 未处理的拒绝:错误:无法启动浏览器进程!
2020-05-20T08:27:03.83+0000 [APP/PROC/WEB/0] ERR /home/vcap/deps/0/node_modules/puppeteer/.local-chromium/linux-756035/chrome-linux/chrome: 加载共享库时出错:libX11-xcb.so.1: 无法打开共享对象文件:没有这样的文件或目录
您可能想直接在我们的 public Slack 上讨论这个问题。
在此处自行注册:https://ic-devops-slack-invite.us-south.devops.cloud.ibm.com/
然后在这里问你的问题 https://ibm-devops-services.slack.com/
我怀疑您应该将缺少的依赖项添加到 package.json
得知注册失败,我深表遗憾。
只需到这里 https://ic-devops-slack-invite.us-south.devops.cloud.ibm.com/
把你的电子邮件地址
并收到您的邀请。
您应该会收到一封用于注册的电子邮件 - 选择您选择的密码。
无论如何,我会尽快检查你的问题
1 - 确保 puppeteer 依赖项的安装没有任何错误。
你写了 "It installs successfully (couple of errors though)"
和“55 未升级”。
可能依赖项未完全安装或未达到要求的级别。
2 - 正如之前评论中所建议的,您正在使用管道基础图像。
您可能想要构建和使用您自己的自定义图像,一个符合您所有先决条件的图像。
https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-custom_docker_images
好的,整理好了。 data_Henrik 从一开始就正确。
我在上面的部署作业中所做的是无用的。它不是将与 APP 一起部署的内容。
相反,您需要使用(对于我的应用程序)标准 nodejs 构建包和专门用于安装 debian 依赖项的构建包来部署 "multi buildpack":https://github.com/cloudfoundry/apt-buildpack. example here: https://ict.swisscom.ch/2019/11/no-root-access-no-debian-packages-on-cloud-foundry-thats-past-with-the-apt-buildpack/
所以对于我的 nodejs 应用程序,它最终是:
1- 包含依赖项列表的特定 apt.yml 文件(注意我必须添加更多,例如 libgbm-dev)
2- 包含 buildpacks
列表的特定 multi-buildpack.yml
就是这样。我 运行 通常的构建和部署作业..
我在持续交付中使用了一个nodejs App。最近我安装了一个无法启动的包(puppeteer),因为它需要一些共享库(xlib)。此问题已记录 (here),我只需要安装其他软件包。
所以我在我的 "BUILD" 工作中添加了额外的行:
#!/bin/bash
npm install
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-6 libx11-xcb1 libxcb1 .......
它安装成功(虽然有几个错误),构建作业以成功结束。 (6 个升级,133 个新安装,0 个删除,55 个未升级。) 但是当我在 "deploy" 阶段启动应用程序时。该文件仍然丢失!
我安装正确了吗?
2020-05-20T08:27:03.83+0000 [APP/PROC/WEB/0] ERR 未处理的拒绝:错误:无法启动浏览器进程! 2020-05-20T08:27:03.83+0000 [APP/PROC/WEB/0] ERR /home/vcap/deps/0/node_modules/puppeteer/.local-chromium/linux-756035/chrome-linux/chrome: 加载共享库时出错:libX11-xcb.so.1: 无法打开共享对象文件:没有这样的文件或目录
您可能想直接在我们的 public Slack 上讨论这个问题。 在此处自行注册:https://ic-devops-slack-invite.us-south.devops.cloud.ibm.com/ 然后在这里问你的问题 https://ibm-devops-services.slack.com/
我怀疑您应该将缺少的依赖项添加到 package.json
得知注册失败,我深表遗憾。 只需到这里 https://ic-devops-slack-invite.us-south.devops.cloud.ibm.com/ 把你的电子邮件地址 并收到您的邀请。
您应该会收到一封用于注册的电子邮件 - 选择您选择的密码。
无论如何,我会尽快检查你的问题
1 - 确保 puppeteer 依赖项的安装没有任何错误。 你写了 "It installs successfully (couple of errors though)" 和“55 未升级”。 可能依赖项未完全安装或未达到要求的级别。
2 - 正如之前评论中所建议的,您正在使用管道基础图像。 您可能想要构建和使用您自己的自定义图像,一个符合您所有先决条件的图像。 https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-custom_docker_images
好的,整理好了。 data_Henrik 从一开始就正确。
我在上面的部署作业中所做的是无用的。它不是将与 APP 一起部署的内容。
相反,您需要使用(对于我的应用程序)标准 nodejs 构建包和专门用于安装 debian 依赖项的构建包来部署 "multi buildpack":https://github.com/cloudfoundry/apt-buildpack. example here: https://ict.swisscom.ch/2019/11/no-root-access-no-debian-packages-on-cloud-foundry-thats-past-with-the-apt-buildpack/
所以对于我的 nodejs 应用程序,它最终是: 1- 包含依赖项列表的特定 apt.yml 文件(注意我必须添加更多,例如 libgbm-dev) 2- 包含 buildpacks
列表的特定 multi-buildpack.yml就是这样。我 运行 通常的构建和部署作业..