如何为Azure函数和Playwright创建多级停靠器文件?

cngwdvgl  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(116)

我正在使用Playwright为我的团队设置一些测试工具。现在我们正在尝试Azure函数,所以我认为将两者结合起来会很有趣。
我正在使用Docker容器部署我的Azure函数,并在其中包含Playwright。Playwright也有一个基础镜像,所以我有兴趣将这两个镜像结合起来,使docker镜像更小。
我想我需要这样的东西:

FROM mcr.microsoft.com/playwright:v1.28.0-jammy as playwright

FROM mcr.microsoft.com/azure-functions/node:4-node18

COPY --from=playwright ??? ???

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY . /home/site/wwwroot

RUN cd /home/site/wwwroot && \
    npm install && \
    npm run build

字符串
所以我想我首先得到剧作家图像,下载所需的内容,然后将其复制到函数图像。我只是不知道要复制什么,也找不到任何相关的东西。
有人有主意吗?我的想法是沿着正确的?

qeeaahzv

qeeaahzv1#

COPY --from=playwright命令用于从Playwright映像复制所需文件。
COPY --from=playwright /usr/bin/playwright /usr/bin/playwright

  • 您可以按照下面的Docker文件来实现您的要求。
  • 示例:*
#Stage 1

FROM mcr.microsoft.com/playwright:v1.28.0-jammy as playwright

RUN apt-get install -y nodejs 
RUN npm install playwright-core

#Stage 2 

FROM mcr.microsoft.com/azure-functions/node:4-node18 
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true  
COPY --from=playwright /usr/bin/playwright /usr/bin/playwright 
COPY --from=playwright /usr/lib/node_modules/playwright-core /usr/lib/node_modules/playwright-core 
COPY . /home/site/wwwroot 
RUN cd /home/site/wwwroot && \ 
    npm install && \ 
    npm start

字符串

  • 阶段1:*

使用Playwright基础图像。安装所需的Node.js和playwright-core

  • 第二阶段:*

将必要的文件从stage1复制到nodejs Azure Function镜像。通过安装所需的依赖项、复制源代码并运行start命令来构建Nodejs Azure Function。

  • 使用以下命令构建此Dockerfile:
docker build -t <Image:tag> .

参考文献:

How to create a multi stage Dockerfile | DevOps Tutorial (devopspilot.com)

相关问题