# 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"]