fix: boolean docker options
This commit is contained in:
		@@ -340,17 +340,22 @@ function convert_docker_run_to_compose(?string $custom_docker_run_options = null
 | 
			
		||||
        '--cap-drop' => 'cap_drop',
 | 
			
		||||
        '--security-opt' => 'security_opt',
 | 
			
		||||
        '--sysctl' => 'sysctls',
 | 
			
		||||
        '--device' => 'devices',
 | 
			
		||||
        '--ulimit' => 'ulimits',
 | 
			
		||||
        '--device' => 'devices',
 | 
			
		||||
        '--init' => 'init',
 | 
			
		||||
        '--ulimit' => 'ulimits',
 | 
			
		||||
        '--privileged' => 'privileged',
 | 
			
		||||
    ]);
 | 
			
		||||
    foreach ($matches as $match) {
 | 
			
		||||
        $option = $match[1];
 | 
			
		||||
        $value = isset($match[2]) && $match[2] !== '' ? $match[2] : true;
 | 
			
		||||
        if (isset($match[2]) && $match[2] !== '') {
 | 
			
		||||
            $value = $match[2];
 | 
			
		||||
            $options[$option][] = $value;
 | 
			
		||||
            $options[$option] = array_unique($options[$option]);
 | 
			
		||||
        } else {
 | 
			
		||||
            $value = true;
 | 
			
		||||
            $options[$option] = $value;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    $options = collect($options);
 | 
			
		||||
    // Easily get mappings from https://github.com/composerize/composerize/blob/master/packages/composerize/src/mappings.js
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,31 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
it('ConvertDockerTunCommand', function () {
 | 
			
		||||
it('ConvertCapAdd', function () {
 | 
			
		||||
    $input = '--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add SYS_ADMIN';
 | 
			
		||||
    $output = convert_docker_run_to_compose($input);
 | 
			
		||||
    expect($output)->toBe([
 | 
			
		||||
        'cap_add' => ['NET_ADMIN', 'NET_RAW', 'SYS_ADMIN'],
 | 
			
		||||
    ])->ray();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
it('ConvertPrivilegedAndInit', function () {
 | 
			
		||||
    $input = '---privileged --init';
 | 
			
		||||
    $output = convert_docker_run_to_compose($input);
 | 
			
		||||
    expect($output)->toBe([
 | 
			
		||||
        'privileged' => true,
 | 
			
		||||
        'init' => true,
 | 
			
		||||
    ])->ray();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
it('ConvertUlimit', function () {
 | 
			
		||||
    $input = '--ulimit nofile=262144:262144';
 | 
			
		||||
    $output = convert_docker_run_to_compose($input);
 | 
			
		||||
    expect($output)->toBe([
 | 
			
		||||
        'ulimits' => [
 | 
			
		||||
            'nofile' => [
 | 
			
		||||
                'soft' => '262144',
 | 
			
		||||
                'hard' => '262144',
 | 
			
		||||
            ],
 | 
			
		||||
        ],
 | 
			
		||||
    ])->ray();
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user