You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Docker容器中运行Java Selenium自动化测试遇依赖问题求解答

Java Selenium应用Docker化问题求助

问题背景

我是Docker与Selenium相关开发的新手,目前正在开发一个基于Java 17和Maven 3.9.6的机器人自动化应用,通过Selenium实现Chrome自动化以完成报告下载任务。该应用在本地开发环境及作为可执行JAR文件运行时均正常工作,但在尝试将其Docker化时,构建和运行Docker镜像过程中遇到了与Selenium及浏览器依赖相关的问题。

当前使用的Dockerfile

# 使用官方OpenJDK 17镜像作为基础镜像
FROM maven:3.9.6-eclipse-temurin-17-alpine AS builder

# 设置容器内的工作目录
WORKDIR /app
RUN chmod -R 777 /app

# 安装工具
RUN apt update -y && apt install -y wget unzip
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y tzdata

# 安装Chrome浏览器
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
RUN apt-get update
RUN apt-get install -y google-chrome-stable

# 安装ChromeDriver
RUN wget -N https://chromedriver.storage.googleapis.com/105.0.5195.19/chromedriver_linux64.zip -P ~/
RUN unzip ~/chromedriver_linux64.zip -d ~/
RUN rm ~/chromedriver_linux64.zip
RUN mv -f ~/chromedriver /usr/local/bin/chromedriver
RUN chmod +x /usr/local/bin/chromedriver

# 复制整个项目(假设Dockerfile位于项目根目录)
COPY . .

# 使用Maven构建应用
RUN mvn package -DskipTests

# 使用官方OpenJDK 17镜像作为最终镜像
FROM eclipse-temurin:17.0.6_10-jdk@sha256:13817c2faa739c0351f97efabed0582a26e9e6745a6fb9c47d17f4365e56327d

# 设置容器内的工作目录
WORKDIR /app

# 将JAR文件及其他必要文件复制到容器中
COPY report-automation.jar /app/report-automation.jar
COPY src/main/resources/META-INF/MANIFEST.MF /app/META-INF/MANIFEST.MF
COPY src /app/src
COPY src/main/resources/META-INF/MANIFEST.MF /app/META-INF/MANIFEST.MF
COPY src/main/resources/config.properties /app/config.properties
COPY pom.xml /app/pom.xml
COPY testng.xml /app/testng.xml
COPY application.properties /app/application.properties
COPY Configuration.xlsm /app/Configuration.xlsm
COPY apache-maven-3.9.6/ /app/apache-maven-3.9.6/
COPY Downloads /app/Downloads
COPY Logs /app/Logs
COPY report /app/report
COPY Reports /app/Reports

# 暴露端口(如果应用监听特定端口)
EXPOSE 8080
# 设置容器的入口点(替换为你的主类)
ENTRYPOINT ["java", "-jar", "report-automation.jar"]

咨询问题

  • 请评估我的Dockerfile方案是否正确,是否需要对Dockerfile及浏览器依赖的添加方式进行修改或优化?
  • 请推荐一些有效的资源,指导如何将该Java Selenium应用Docker化,以部署到当前未安装Selenium或Chrome浏览器的新服务器上?

已参考的资料类型

我查阅了大量网络资源、论坛及视频资料后,参考过以下类型的内容,但似乎仍有遗漏:

  • Docker容器内运行Selenium测试的系列教程
  • Linux Docker镜像中安装最新Chrome及对应驱动的实操指南
  • 关于Docker容器中安装Google Chrome的技术讨论

内容的提问来源于stack exchange,提问作者Gehan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:17:25