Vexflow2 / Dockerfile
isididiidid's picture
Create Dockerfile
a6b4b50 verified
raw
history blame
1.47 kB
# 第 1 步:基础镜像
# 使用 Node.js 20 的 slim 镜像,它在大小和功能之间取得了很好的平衡。
# Playwright 要求 Node.js 18+。
FROM node:20-slim
# 第 2 步:设置工作目录
# 后续所有命令都将在此目录内执行。
WORKDIR /app
# 第 3 步:复制 package 文件并安装依赖
# 这一步利用了 Docker 的层缓存。只有当 package*.json 文件发生变化时,npm ci 才会重新运行。
COPY package*.json ./
RUN npm ci
# 第 4 步:安装 Playwright 的系统依赖
# 这是让浏览器引擎在 Linux 上运行的关键步骤。
RUN npx playwright install-deps
# 第 5 步:安装 Playwright 浏览器
# 这会下载 Playwright 所需的浏览器二进制文件。
# 注意:这将显著增加 Docker 镜像的大小。
RUN npx playwright install
# 第 6 步:复制应用程序的其余代码
COPY . .
# 第 7 步:为代理服务器二进制文件添加执行权限
# 你的 ProxyServer.js 会启动这个文件,所以它需要执行权限。
# 这里假设二进制文件位于 src/proxy/ 目录下。
RUN chmod +x src/proxy/chrome_proxy_server_linux_amd64
# 第 8 步:暴露应用程序端口
# 你的 lightweight-client-express.js 监听 7860 端口。
EXPOSE 7860
# 第 9 步:设置生产环境
ENV NODE_ENV=production
# 第 10 步:定义运行应用的命令
# 当容器启动时,这条命令会启动你的 Express 服务器。
CMD ["node", "src/lightweight-client-express.js"]