1
0

index.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import * as grpc from "@grpc/grpc-js";
  2. import * as continersPb from "./grpc/containers_grpc_pb";
  3. import { IContainersClient } from "./grpc/containers_grpc_pb";
  4. import { ListRequest, ListResponse } from "./grpc/containers_pb";
  5. let address = process.argv[3] || "unix:///tmp/backend.sock";
  6. const ContainersServiceClient = grpc.makeClientConstructor(
  7. continersPb["com.docker.api.containers.v1.Containers"],
  8. "ContainersClient"
  9. );
  10. const client = (new ContainersServiceClient(
  11. address,
  12. grpc.credentials.createInsecure()
  13. ) as unknown) as IContainersClient;
  14. let backend = process.argv[2] || "moby";
  15. const meta = new grpc.Metadata();
  16. meta.set("CONTEXT_KEY", backend);
  17. client.list(new ListRequest(), meta, (err: any, response: ListResponse) => {
  18. if (err != null) {
  19. console.error(err);
  20. return;
  21. }
  22. const containers = response.getContainersList();
  23. containers.forEach((container) => {
  24. console.log(container.getId(), container.getImage());
  25. });
  26. });
  27. function arrayBufferToString(buffer: Uint8Array): string {
  28. return String.fromCharCode.apply(null, Array.from(buffer));
  29. }