run method

Future<String> run({
  1. required String image,
  2. String? command,
  3. String? workingDir,
  4. Map<String, String> env = const {},
  5. String? mountPath,
  6. String? mountSubpath,
  7. String? role,
  8. String? participantName,
  9. Map<int, int> ports = const {},
  10. List<DockerSecret> credentials = const [],
  11. String? name,
  12. ContainerMountSpec? mounts,
  13. bool? writableRootFs,
  14. bool? private,
})

Implementation

Future<String> run({
  required String image,
  String? command,
  String? workingDir,
  Map<String, String> env = const {},
  String? mountPath,
  String? mountSubpath,
  String? role,
  String? participantName,
  Map<int, int> ports = const {},
  List<DockerSecret> credentials = const [],
  String? name,
  ContainerMountSpec? mounts,
  bool? writableRootFs,
  bool? private,
}) async {
  final output = await room.invoke(
    toolkit: 'containers',
    tool: 'run',
    input: ToolContentInput(
      JsonContent(
        json: {
          'image': image,
          'command': command,
          'working_dir': workingDir,
          'env': _containerStringPairList(env),
          'mount_path': mountPath,
          'mount_subpath': mountSubpath,
          'role': role,
          'participant_name': participantName,
          'ports': _containerPortPairs(ports),
          'credentials': _containerCredentials(credentials),
          'name': name,
          'mounts': mounts?.toJson(),
          'writable_root_fs': writableRootFs,
          'private': private,
        },
      ),
    ),
  );
  if (output is! ToolContentOutput || output.content is! JsonContent) {
    throw _unexpectedResponseError(operation: 'run');
  }
  return (output.content as JsonContent).json['container_id'] as String;
}