createContainer function

Future<void> createContainer(
  1. String name
)

Implementation

Future<void> createContainer(String name) async {
  _log.info('Creating container $name from $dockerImage...');

  final dockerCpus = Platform.environment['OPENCI_DOCKER_CPUS'] ?? '4';
  final dockerMemory = Platform.environment['OPENCI_DOCKER_MEMORY'] ?? '8g';

  final args = ['create', '--name', name];

  if (dockerCpus.isNotEmpty) {
    args.addAll(['--cpus', dockerCpus]);
  }
  if (dockerMemory.isNotEmpty) {
    args.addAll(['--memory', dockerMemory]);
  }

  args.addAll(['-v', '/var/run/docker.sock:/var/run/docker.sock', dockerImage]);

  final result = await Process.run('docker', args);
  if (result.exitCode != 0) {
    throw Exception('Failed to create container $name: ${result.stderr}');
  }
}