首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MacOS苹果硅M1 arm64主机上在码头集装箱上运行虚拟主机

如何在MacOS苹果硅M1 arm64主机上在码头集装箱上运行虚拟主机
EN

Stack Overflow用户
提问于 2022-03-12 18:31:30
回答 1查看 3.2K关注 0票数 4

我无法在码头集装箱内部运行我的单元测试。我的主机是一个MacOS,带有苹果硅M1 (arm64)芯片。我也尝试遵循“木偶人”的文献资料的指示,但它们是针对amd64的。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-12 18:31:30

由于某些原因,直接安装木偶机NPM包将无法工作,遗憾的是,GitHub中的官方puppeteer文档与arm64体系结构不兼容。

我就是这样准备我的Dockerfile的:

代码语言:javascript
复制
FROM node:16

RUN apt-get update \
 && apt-get install -y chromium \
    fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 \
    --no-install-recommends
    
USER node # non-root user that comes with `node` images.

WORKDIR /app

COPY --chown=node package.json .
COPY --chown=node package-lock.json .

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium

RUN npm install

COPY --chown=node . /app

配置的Dockerfile是苹果硅(linux/arm64)的原生文件,也是amd64 (linux/amd64 64)体系结构的本机。

您还必须将--no-sandbox参数传递给代码上的浏览器:

代码语言:javascript
复制
export async function createBrowserInstance(): Promise<puppeteer.Browser> {
    return await puppeteer.launch({
        args: ['--no-sandbox'], // Required.
        headless: true,
    });
}

额外的标志将禁用浏览器的dev沙箱,因此请确保只访问受信任的页面。否则就没事了。请,来自未来的人,请随时编辑这个答案或评论如何摆脱--no-sandbox的论点。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71452265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档