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

如何为Zalenium设置volume的accessModes:ReadWriteMany?

解决Zalenium共享文件与Kubernetes ReadWriteMany配置问题

Hey there! Let's work through this together since you're new to Docker and Zalenium. First, let's recap the note you found from the Zalenium docs:

Like the Docker version of Zalenium, the Kubernetes version can automatically mount shared folders, the only catch is that when you are using persistent volumes you need to make sure that the Access Mode is set to ReadWriteMany, otherwise the selenium nodes will not be able to mount it.

先理清:Docker Standalone vs Kubernetes 场景

Right now, you're running Zalenium directly with docker run (Docker standalone mode). The -v /d/shared_folder:/data mount you've added already lets the Zalenium container access your local /d/shared_folder directory—your test cases can just use the container path /data to access those files. The ReadWriteMany setting only applies to Kubernetes deployments, which is exactly what that docs note is referring to.

如果要在Kubernetes中配置ReadWriteMany

If you plan to move your Zalenium setup to Kubernetes later, here's a concrete example of how to set up persistent storage with ReadWriteMany access mode:

1. 创建PersistentVolume (PV)

First, define a PV that uses a storage type supporting multi-node read/write (NFS is a common, reliable choice for this):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: zalenium-shared-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany  # 这就是文档中提到的关键配置项
  nfs:
    server: your-nfs-server-ip  # 替换为你的NFS服务器实际IP
    path: /path/to/nfs/shared/directory  # 替换为NFS服务器上的共享目录路径

2. 创建PersistentVolumeClaim (PVC)

Next, create a PVC to bind to the PV above—this is how your Zalenium pods will request access to the shared storage:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: zalenium-shared-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

3. 在Zalenium Kubernetes部署中挂载PVC

Finally, update your Zalenium Deployment to use this PVC, mounting it to the same /data path you used in Docker (so your test cases don't need any changes):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zalenium
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zalenium
  template:
    metadata:
      labels:
        app: zalenium
    spec:
      containers:
      - name: zalenium
        image: dosel/zalenium:latest
        args: ["start", "--videoRecordingEnabled", "false"]
        ports:
        - containerPort: 4444
        volumeMounts:
        - name: shared-storage
          mountPath: /data  # 和你Docker命令中的挂载路径保持一致
        - name: docker-sock
          mountPath: /var/run/docker.sock
      volumes:
      - name: shared-storage
        persistentVolumeClaim:
          claimName: zalenium-shared-pvc  # 引用我们创建的PVC
      - name: docker-sock
        hostPath:
          path: /var/run/docker.sock

快速提示

  • 不是所有存储类型都支持ReadWriteMany——比如本地磁盘的HostPath就不行,建议使用NFS、CephFS这类共享存储,或者云厂商提供的托管服务(比如AWS EFS、Azure Files)。
  • 如果继续使用Docker standalone模式,你当前的docker run命令已经完全可用!测试用例直接访问容器内的/data路径就能读取到/d/shared_folder里的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:09