# frozen_string_literal: true require 'tmpdir' module Gitlab module QA module Docker class Volumes VOLUMES = { 'config' => '/etc/gitlab', 'data' => '/var/opt/gitlab' }.freeze QA_CONTAINER_WORKDIR = '/home/gitlab/qa' def initialize(volumes = VOLUMES) @volumes = volumes end def with_temporary_volumes # macOS's tmpdir is a symlink /var/folders -> /private/var/folders # but Docker on macOS exposes /private and disallow exposing /var/ # so we need to get the real tmpdir path Dir.mktmpdir('gitlab-qa-', File.realpath(Dir.tmpdir)).tap do |dir| yield @volumes.transform_keys { |k| "#{dir}/#{k}" } end end end end end end