能否在GitHub Workflow服务容器中配置tmpfs挂载?
在GitHub Actions服务容器中使用tmpfs卷
能否在GitHub Workflow中挂载tmpfs卷?
可以。GitHub Actions支持为服务容器配置tmpfs类型的卷,刚好适配你测试后无需保留数据、追求RAM读写速度的场景。能否指定服务容器将特定目录挂载为tmpfs?
完全可以,你可以通过Workflow的services配置,精准指定容器内的目标目录挂载为tmpfs,还能按需设置内存使用上限。举个MySQL服务容器的配置示例:
jobs: run-tests: runs-on: ubuntu-latest services: mysql: image: mysql:8.0 env: MYSQL_ROOT_PASSWORD: test_pass MYSQL_DATABASE: test_db volumes: - type: tmpfs target: /var/lib/mysql # 将MySQL默认数据存储目录挂载为tmpfs tmpfs: size: 2G # 可选,限制该tmpfs最多使用2GB内存 ports: - 3306:3306 options: >- --health-cmd="mysqladmin ping -u root -p$MYSQL_ROOT_PASSWORD" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - uses: actions/checkout@v4 # 此处添加你的测试步骤,连接MySQL服务执行自动化测试
配置里type: tmpfs声明了卷的类型,target指定容器内要挂载的具体路径,tmpfs.size用来限制该tmpfs占用的内存上限,避免耗尽Runner的资源。
- GitHub是否已默认将所有内容挂载到tmpfs?
不是的。GitHub托管的Runner上,服务容器默认使用宿主机的本地存储,只有当你像上面那样显式配置tmpfs卷时,才会把指定目录挂载到RAM中。
内容的提问来源于stack exchange,提问作者Diogo Melo
相关产品推荐
相关产品推荐

