Skip to content
This repository has been archived by the owner on Oct 26, 2019. It is now read-only.

Warning: Invalid argument supplied for foreach() in /Normalizer/NetworkSettingsNormalizer.php on line 60 #348

Open
lyrixx opened this issue Mar 20, 2019 · 1 comment

Comments

@lyrixx
Copy link

lyrixx commented Mar 20, 2019

The code I'm using

foreach ($this->client->containerList(['all' => true]) as $container) {
    $this->client->containerInspect($container->getId());
}

The error

Warning: Invalid argument supplied for foreach() in project/vendor/docker-php/docker-php-api/src/Normalizer/NetworkSettingsNormalizer.php on line 60

Call Stack:
    0.0012     548600   1. {main}() project/index.php:0
    0.0412    6503248   2. Symfony\Component\Console\Application->run() project/index.php:61
    0.0462    6840144   3. Symfony\Component\Console\Application->doRun() project/vendor/symfony/console/Application.php:145
    0.0467    6843520   4. Symfony\Component\Console\Application->doRunCommand() project/vendor/symfony/console/Application.php:269
    0.0467    6843520   5. DockerCleanCommand->run() project/vendor/symfony/console/Application.php:908
    0.0470    6845352   6. DockerCleanCommand->execute() project/vendor/symfony/console/Command/Command.php:255
    0.0470    6845352   7. DockerCleanCommand->cleanContainers() project/index.php:35
    0.5665    8517720   8. Docker\Docker->containerInspect() project/index.php:52
    0.5665    8517848   9. Docker\Docker->executePsr7Endpoint() project/vendor/docker-php/docker-php-api/src/Client.php:81
    0.5680    8542640  10. Docker\API\Endpoint\ContainerInspect->parsePSR7Response() project/vendor/jane-php/open-api-runtime/Client/Psr7HttplugClient.php:48
    0.5681    8549056  11. Docker\API\Endpoint\ContainerInspect->transformResponseBody() project/vendor/jane-php/open-api-runtime/Client/Psr7HttplugEndpointTrait.php:18
    0.5681    8549056  12. Symfony\Component\Serializer\Serializer->deserialize() project/vendor/docker-php/docker-php-api/src/Endpoint/ContainerInspect.php:76
    0.5682    8578808  13. Symfony\Component\Serializer\Serializer->denormalize() project/vendor/symfony/serializer/Serializer.php:142
    0.5686    8578808  14. Docker\API\Normalizer\ContainersIdJsonGetResponse200Normalizer->denormalize() project/vendor/symfony/serializer/Serializer.php:191
    0.5698    8586768  15. Symfony\Component\Serializer\Serializer->denormalize() project/vendor/docker-php/docker-php-api/src/Normalizer/ContainersIdJsonGetResponse200Normalizer.php:122
    0.5699    8586768  16. Docker\API\Normalizer\NetworkSettingsNormalizer->denormalize() project/vendor/symfony/serializer/Serializer.php:191

docker version:

Client:
 Version:           18.09.3
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        774a1f4
 Built:             Thu Feb 28 06:53:11 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.3
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       774a1f4
  Built:            Thu Feb 28 05:59:55 2019
  OS/Arch:          linux/amd64
  Experimental:     false

composer show:

docker-php/docker-php             v2.0.0    A Docker PHP client
docker-php/docker-php-api         v4.1.36.1 Docker API generated files from OpenAPI Specification
the raw API response
{
   "Created" : "2019-03-20T13:39:58.670340274Z",
   "Name" : "/project_frontend_1",
   "Mounts" : [
      {
         "Destination" : "/var/www",
         "Type" : "bind",
         "Propagation" : "rprivate",
         "RW" : true,
         "Source" : "/home/gregoire/dev/simon.project.io/project-com",
         "Mode" : "cached"
      }
   ],
   "AppArmorProfile" : "docker-default",
   "State" : {
      "Error" : "",
      "Restarting" : false,
      "Dead" : false,
      "OOMKilled" : false,
      "Status" : "running",
      "Paused" : false,
      "ExitCode" : 0,
      "Pid" : 8149,
      "Running" : true,
      "StartedAt" : "2019-03-20T13:39:59.849183665Z",
      "FinishedAt" : "0001-01-01T00:00:00Z"
   },
   "ExecIDs" : null,
   "MountLabel" : "",
   "LogPath" : "/var/lib/docker/containers/478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707/478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707-json.log",
   "Config" : {
      "Labels" : {
         "com.docker.compose.oneoff" : "False",
         "com.docker.compose.project" : "project",
         "traefik.frontend.rule" : "Host:ae.www.project.test, api.project.test, au.www.project.test, be.www.project.test, bh.www.project.test, bo.project.test, br.www.project.test, ch.www.project.test, ch.www.project.test, com.www.project.test, de-ch.www.project.test, es.www.project.test, fr.www.project.test, hk.www.project.test, it.www.project.test, kr.www.project.test, nl-be.www.project.test, nl.www.project.test, ota.project.test, partners.project.test, pt.www.project.test, qa.www.project.test, sa.www.project.test, sg.www.project.test, tw.www.project.test, uk.www.project.test",
         "traefik.frontend.entryPoints" : "https",
         "com.docker.compose.config-hash" : "8a4b142defe09c587ba67864261ef656bc583e6767e584ebc244f25b91ae3d86",
         "traefik.port" : "80",
         "com.docker.compose.service" : "frontend",
         "com.docker.compose.version" : "1.23.2",
         "com.docker.compose.container-number" : "1"
      },
      "AttachStderr" : false,
      "Volumes" : {
         "/var/www" : {}
      },
      "Cmd" : [
         "runsvdir",
         "-P",
         "/etc/service"
      ],
      "AttachStdin" : false,
      "ArgsEscaped" : true,
      "WorkingDir" : "",
      "ExposedPorts" : {
         "80/tcp" : {}
      },
      "Image" : "project_frontend",
      "OnBuild" : null,
      "AttachStdout" : false,
      "Domainname" : "",
      "StdinOnce" : false,
      "Hostname" : "478635e68978",
      "Tty" : false,
      "Env" : [
         "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      ],
      "User" : "",
      "OpenStdin" : false,
      "Entrypoint" : null
   },
   "NetworkSettings" : {
      "HairpinMode" : false,
      "IPPrefixLen" : 0,
      "MacAddress" : "",
      "IPAddress" : "",
      "IPv6Gateway" : "",
      "LinkLocalIPv6Address" : "",
      "GlobalIPv6Address" : "",
      "Networks" : {
         "project_default" : {
            "Links" : null,
            "EndpointID" : "ecab145d8a5b3a45980ff913e54ea7051845db8fc79229773b6ea903fe052f3d",
            "IPAMConfig" : null,
            "Gateway" : "172.20.0.1",
            "NetworkID" : "d6305c03563b4a24111222fd3eb24ca94572f7ad58020b95d6e0eb9356f75074",
            "Aliases" : [
               "frontend",
               "478635e68978"
            ],
            "DriverOpts" : null,
            "IPv6Gateway" : "",
            "GlobalIPv6PrefixLen" : 0,
            "GlobalIPv6Address" : "",
            "IPPrefixLen" : 16,
            "IPAddress" : "172.20.0.6",
            "MacAddress" : "02:42:ac:14:00:06"
         }
      },
      "EndpointID" : "",
      "SecondaryIPv6Addresses" : null,
      "Ports" : {
         "80/tcp" : null
      },
      "Bridge" : "",
      "SecondaryIPAddresses" : null,
      "GlobalIPv6PrefixLen" : 0,
      "Gateway" : "",
      "SandboxID" : "5729fad301656be1c60294859d5595b55e448fb524d8b47579db1d27535a2d13",
      "LinkLocalIPv6PrefixLen" : 0,
      "SandboxKey" : "/var/run/docker/netns/5729fad30165"
   },
   "GraphDriver" : {
      "Data" : {
         "WorkDir" : "/var/lib/docker/overlay2/cf5a8b9b01c84bafceaf11e88416a7ae3adf3135a39d4d7da20ea04c3cd6da5b/work",
         "UpperDir" : "/var/lib/docker/overlay2/cf5a8b9b01c84bafceaf11e88416a7ae3adf3135a39d4d7da20ea04c3cd6da5b/diff",
         "LowerDir" : "/var/lib/docker/overlay2/cf5a8b9b01c84bafceaf11e88416a7ae3adf3135a39d4d7da20ea04c3cd6da5b-init/diff:/var/lib/docker/overlay2/277d211cbdb06ec2aa550568506295542f298d39725e903d48129388f4bec42a/diff:/var/lib/docker/overlay2/d84734f63710d47470d1e2ab701f84ae64bfeca3a7f99f1602ac1749147d191f/diff:/var/lib/docker/overlay2/ac0c0abbc694154bb481c1b23770d0001cba2bc7663361a1b5ad9cc63a8bfd55/diff:/var/lib/docker/overlay2/245be74b59686445dea8f9aa358b642d1e783c5a6839ce8711c1b5c6f52cdc17/diff:/var/lib/docker/overlay2/39c030b6fc5b919fef58d2ea5a9940ef0b846058b29e89fe94c023a00db60aa4/diff:/var/lib/docker/overlay2/1d8fe694a2f78fa95ecede1d03785fd9b6d3ca9fec1cd9967b90eaedaf0c0d68/diff:/var/lib/docker/overlay2/a237c554965e1bd3bd080cab9a1879da0b33fbada934dcb4c18aa5b883987ab9/diff:/var/lib/docker/overlay2/b5b24d0c631c6c9ea751cd55235449630758af093ff5d8809372b731e27b64b2/diff:/var/lib/docker/overlay2/5a37e1286fbf17cca7a9c60a4d54d050f0e01b97d3f68937986f6ef7ba36bd5a/diff:/var/lib/docker/overlay2/b3e7e1925a285fdc92643f487200e9a37f16c1bc83244f307cd6b8910fe3144a/diff:/var/lib/docker/overlay2/83367e6f759b3154d825b23b43cf9bcc0c28b5deb1c6a9d62e61e3f1c6ce927f/diff:/var/lib/docker/overlay2/0fe54cd62bcd18792f3f422a7c90bfa01cf8e8ecdf112b9f3517f027ec729000/diff",
         "MergedDir" : "/var/lib/docker/overlay2/cf5a8b9b01c84bafceaf11e88416a7ae3adf3135a39d4d7da20ea04c3cd6da5b/merged"
      },
      "Name" : "overlay2"
   },
   "Path" : "runsvdir",
   "Id" : "478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707",
   "Args" : [
      "-P",
      "/etc/service"
   ],
   "Driver" : "overlay2",
   "Image" : "sha256:8dc648ba876cfacbf7d078d6db86dfedd5574c85ac53d894a2d316b8d033ee16",
   "HostsPath" : "/var/lib/docker/containers/478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707/hosts",
   "HostConfig" : {
      "RestartPolicy" : {
         "Name" : "",
         "MaximumRetryCount" : 0
      },
      "BlkioDeviceWriteIOps" : null,
      "CpuRealtimeRuntime" : 0,
      "MemoryReservation" : 0,
      "LogConfig" : {
         "Config" : {},
         "Type" : "json-file"
      },
      "CpusetCpus" : "",
      "Devices" : null,
      "ConsoleSize" : [
         0,
         0
      ],
      "PortBindings" : {},
      "BlkioDeviceReadIOps" : null,
      "CpuShares" : 0,
      "NanoCpus" : 0,
      "UsernsMode" : "",
      "Privileged" : false,
      "CpuPeriod" : 0,
      "PidMode" : "",
      "CpuPercent" : 0,
      "SecurityOpt" : null,
      "Isolation" : "",
      "MemorySwap" : 0,
      "BlkioDeviceReadBps" : null,
      "CapAdd" : null,
      "OomScoreAdj" : 0,
      "CpuCount" : 0,
      "ShmSize" : 67108864,
      "BlkioWeightDevice" : null,
      "DeviceCgroupRules" : null,
      "UTSMode" : "",
      "Ulimits" : null,
      "Cgroup" : "",
      "BlkioWeight" : 0,
      "PublishAllPorts" : false,
      "CpuRealtimePeriod" : 0,
      "KernelMemory" : 0,
      "ContainerIDFile" : "",
      "DiskQuota" : 0,
      "OomKillDisable" : false,
      "CapDrop" : null,
      "CpusetMems" : "",
      "CgroupParent" : "",
      "ReadonlyPaths" : [
         "/proc/bus",
         "/proc/fs",
         "/proc/irq",
         "/proc/sys",
         "/proc/sysrq-trigger"
      ],
      "Runtime" : "runc",
      "AutoRemove" : false,
      "MaskedPaths" : [
         "/proc/asound",
         "/proc/acpi",
         "/proc/kcore",
         "/proc/keys",
         "/proc/latency_stats",
         "/proc/timer_list",
         "/proc/timer_stats",
         "/proc/sched_debug",
         "/proc/scsi",
         "/sys/firmware"
      ],
      "Links" : null,
      "ReadonlyRootfs" : false,
      "DnsOptions" : null,
      "Memory" : 0,
      "Dns" : null,
      "IpcMode" : "shareable",
      "VolumeDriver" : "",
      "VolumesFrom" : [],
      "GroupAdd" : null,
      "DnsSearch" : null,
      "NetworkMode" : "project_default",
      "BlkioDeviceWriteBps" : null,
      "IOMaximumIOps" : 0,
      "Binds" : [
         "/home/gregoire/dev/simon.project.io/project-com:/var/www:cached"
      ],
      "CpuQuota" : 0,
      "IOMaximumBandwidth" : 0,
      "ExtraHosts" : null,
      "PidsLimit" : 0,
      "MemorySwappiness" : null
   },
   "RestartCount" : 0,
   "Platform" : "linux",
   "ProcessLabel" : "",
   "HostnamePath" : "/var/lib/docker/containers/478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707/hostname",
   "ResolvConfPath" : "/var/lib/docker/containers/478635e689785f6fab1866a538cc54bb4a006e309d8b9d44f7eaeff96ac56707/resolv.conf"
}
@lmjhs
Copy link

lmjhs commented Mar 21, 2019

Same here.

It appears the problem is because the Ports section inside NetworkSettings is returning null as it's value but the code is expecting to handle an array.

{ "NetworkSettings" : { "Ports" : { "80/tcp": null } } }

A simple check to see if it is an array fixes the problem but maybe there is an inconsistency with the docker API?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants