def run(service, *cmd, detached: false, no_deps: false, volumes: [], env: [], rm: false, no_tty: false, user: nil, service_ports: false)
      o = opts(d: [detached, false], no_deps: [no_deps, false], rm: [rm, false], T: [no_tty, false], u: [user, nil], service_ports: [service_ports, false])
      env_params = env.map { |v| { e: v } }
      volume_params = volumes.map { |v| { v: v } }
      run!('run', o, *env_params, *volume_params, service, cmd)
    end
def run(service, *cmd, detached: false, no_deps: false, volumes: [], env: [], rm: false, no_tty: false, user: nil, service_ports: false)
      o = opts(d: [detached, false], no_deps: [no_deps, false], rm: [rm, false], T: [no_tty, false], u: [user, nil], service_ports: [service_ports, false])
      env_params = env.map { |v| { e: v } }
      volume_params = volumes.map { |v| { v: v } }
      run!('run', o, *env_params, *volume_params, service, cmd)
    end
Idempotently run an arbitrary command with a service container.
 @param [String] service name to run
 @param [String] cmd command statement to run
 @param [Boolean] detached if true, to start services in the background;
   otherwise, monitor logs in the foreground and shutdown on Ctrl+C
 @param [Boolean] no_deps if true, just run specified services without
   running the services that they depend on
 @param [Array] env a list of environment variables (see: -e flag)
 @param [Array] volumes a list of volumes to bind mount (see: -v flag)
 @param [Boolean] rm remove the container when done
 @param [Boolean] no_tty disable pseudo-tty allocation (see: -T flag)
 @param [String] user run as specified username or uid (see: -u flag)
 @raise [Error] if command fails