fix: don't add networks key if network_mode is used

This commit is contained in:
Vahor
2024-09-09 23:30:47 +02:00
parent 1d72f76072
commit 29acc4ee25

View File

@@ -3109,6 +3109,7 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
} }
$volumes = collect(data_get($service, 'volumes', [])); $volumes = collect(data_get($service, 'volumes', []));
$networks = collect(data_get($service, 'networks', [])); $networks = collect(data_get($service, 'networks', []));
$use_network_mode = data_get($service, 'network_mode') !== null;
$depends_on = collect(data_get($service, 'depends_on', [])); $depends_on = collect(data_get($service, 'depends_on', []));
$labels = collect(data_get($service, 'labels', [])); $labels = collect(data_get($service, 'labels', []));
$environment = collect(data_get($service, 'environment', [])); $environment = collect(data_get($service, 'environment', []));
@@ -3308,32 +3309,34 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
$depends_on = $newDependsOn; $depends_on = $newDependsOn;
} }
} }
if ($topLevel->get('networks')?->count() > 0) { if(!$use_network_mode) {
foreach ($topLevel->get('networks') as $networkName => $network) { if ($topLevel->get('networks')?->count() > 0) {
if ($networkName === 'default') { foreach ($topLevel->get('networks') as $networkName => $network) {
continue; if ($networkName === 'default') {
} continue;
// ignore aliases }
if ($network['aliases'] ?? false) { // ignore aliases
continue; if ($network['aliases'] ?? false) {
} continue;
$networkExists = $networks->contains(function ($value, $key) use ($networkName) { }
return $value == $networkName || $key == $networkName; $networkExists = $networks->contains(function ($value, $key) use ($networkName) {
}); return $value == $networkName || $key == $networkName;
if (! $networkExists) { });
$networks->put($networkName, null); if (! $networkExists) {
$networks->put($networkName, null);
}
} }
} }
} $baseNetworkExists = $networks->contains(function ($value, $_) use ($baseNetwork) {
$baseNetworkExists = $networks->contains(function ($value, $_) use ($baseNetwork) { return $value == $baseNetwork;
return $value == $baseNetwork; });
}); if (! $baseNetworkExists) {
if (! $baseNetworkExists) { foreach ($baseNetwork as $network) {
foreach ($baseNetwork as $network) { $topLevel->get('networks')->put($network, [
$topLevel->get('networks')->put($network, [ 'name' => $network,
'name' => $network, 'external' => true,
'external' => true, ]);
]); }
} }
} }
@@ -3359,30 +3362,32 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
$networks_temp = collect(); $networks_temp = collect();
foreach ($networks as $key => $network) { if(!$use_network_mode) {
if (gettype($network) === 'string') { foreach ($networks as $key => $network) {
// networks: if (gettype($network) === 'string') {
// - appwrite // networks:
$networks_temp->put($network, null); // - appwrite
} elseif (gettype($network) === 'array') { $networks_temp->put($network, null);
// networks: } elseif (gettype($network) === 'array') {
// default: // networks:
// ipv4_address: 192.168.203.254 // default:
$networks_temp->put($key, $network); // ipv4_address: 192.168.203.254
$networks_temp->put($key, $network);
}
} }
} foreach ($baseNetwork as $key => $network) {
foreach ($baseNetwork as $key => $network) {
$networks_temp->put($network, null);
}
if ($isApplication) {
if (data_get($resource, 'settings.connect_to_docker_network')) {
$network = $resource->destination->network;
$networks_temp->put($network, null); $networks_temp->put($network, null);
$topLevel->get('networks')->put($network, [ }
'name' => $network,
'external' => true, if ($isApplication) {
]); if (data_get($resource, 'settings.connect_to_docker_network')) {
$network = $resource->destination->network;
$networks_temp->put($network, null);
$topLevel->get('networks')->put($network, [
'name' => $network,
'external' => true,
]);
}
} }
} }
@@ -3623,9 +3628,11 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
$payload = collect($service)->merge([ $payload = collect($service)->merge([
'container_name' => $containerName, 'container_name' => $containerName,
'restart' => $restart->value(), 'restart' => $restart->value(),
'networks' => $networks_temp,
'labels' => $serviceLabels, 'labels' => $serviceLabels,
]); ]);
if(!$use_network_mode){
$payload['networks'] = $networks_temp;
}
if ($ports->count() > 0) { if ($ports->count() > 0) {
$payload['ports'] = $ports; $payload['ports'] = $ports;
} }