Spaces:
Paused
Paused
File size: 1,269 Bytes
c129353 a6b4b50 c129353 a6b4b50 ffb40ca c129353 a6b4b50 c129353 a6b4b50 c129353 a6b4b50 c129353 a6b4b50 c129353 ffb40ca c129353 a5f4505 c129353 a5f4505 ffb40ca a5f4505 ffb40ca c129353 a6b4b50 c129353 a6b4b50 c129353 a6b4b50 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # Step 1: Base Image
FROM node:20-slim
# Step 2: Set Working Directory
WORKDIR /app
# --- 创建一个专门用于运行的用户 ---
RUN useradd --create-home --shell /bin/bash appuser
USER appuser
WORKDIR /home/appuser/app
# Step 3: Copy package files and install dependencies
COPY --chown=appuser:appuser package*.json ./
RUN npm ci
# Step 4: Install Playwright's system dependencies
USER root
RUN npx playwright install-deps
USER appuser
# Step 5: Install Playwright browsers
RUN npx playwright install
# Step 6: Copy the rest of the application code
COPY --chown=appuser:appuser . .
# Step 7: ***【简化权限设置】***
# 准备可写的代理目录
USER root
# (1) 处理代理二进制文件
RUN mkdir -p /tmp/proxy && cp src/proxy/chrome_proxy_server_linux_amd64 /tmp/proxy/
RUN chmod +x /tmp/proxy/chrome_proxy_server_linux_amd64
# (2) ***【移除】*** 不再需要处理日志文件权限
# RUN mkdir -p /tmp/logs
# RUN touch /tmp/logs/proxy_server.log
# RUN chown -R appuser:appuser /tmp/logs
# 切换回 appuser
USER appuser
# Step 8: Expose the application port
EXPOSE 7860
# Step 9: Set production environment
ENV NODE_ENV=production
# Step 10: Define the command to run the application
CMD ["node", "src/lightweight-client-express.js"] |