dockerfile 1.4 KB

1234567891011121314151617181920212223
  1. # 使用官方 Playwright Java 镜像,内置 Chromium 与运行依赖
  2. FROM mcr.microsoft.com/playwright/java:v1.58.0-noble
  3. # 设置工作目录
  4. WORKDIR /app
  5. ENV TZ=Asia/Shanghai
  6. ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
  7. ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
  8. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  9. # 安装报告 PDF 使用的固定字体,避免 Playwright 每次通过 @font-face 加载随包字体
  10. RUN mkdir -p /usr/local/share/fonts/misans
  11. COPY fonts/MiSans-VF.ttf /usr/local/share/fonts/misans/MiSans-VF.ttf
  12. RUN fc-cache -fv \
  13. && fc-match "MiSans VF" \
  14. && fc-match "MiSans VF" | grep -q "MiSans-VF.ttf"
  15. # 暴露端口
  16. EXPOSE 8500
  17. # 启动前检查挂载文件,缺失时快速失败
  18. CMD ["sh", "-c", "PROFILE=${SPRING_PROFILES_ACTIVE:-test}; case \"$PROFILE\" in *,*) echo \"Unsupported comma-separated SPRING_PROFILES_ACTIVE: $PROFILE\"; exit 1 ;; esac; test -f /app/dcjxb-ability-center.jar || { echo 'Missing /app/dcjxb-ability-center.jar'; exit 1; }; test -f /app/application.yml || { echo 'Missing /app/application.yml'; exit 1; }; test -f \"/app/application-${PROFILE}.yml\" || { echo \"Missing /app/application-${PROFILE}.yml\"; exit 1; }; exec java -Xms256m -Xmx512m -Djava.net.preferIPv4Stack=true -Dspring.profiles.active=$PROFILE -jar /app/dcjxb-ability-center.jar --spring.config.location=/app/application.yml,/app/application-${PROFILE}.yml"]