index.ts 930 B

123456789101112131415161718192021222324
  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. const ContainersServiceClient = grpc.makeClientConstructor(continersPb["com.docker.api.containers.v1.Containers"], "ContainersClient");
  6. const client = new ContainersServiceClient("unix:///tmp/backend.sock", grpc.credentials.createInsecure()) as unknown as IContainersClient;
  7. let backend = process.argv[2] || "moby";
  8. const meta = new grpc.Metadata();
  9. meta.set("CONTEXT_KEY", backend);
  10. client.list(new ListRequest(), meta, (err: any, response: ListResponse) => {
  11. if (err != null) {
  12. console.error(err);
  13. return;
  14. }
  15. const containers = response.getContainersList();
  16. containers.forEach(container => {
  17. console.log(container.getId(), container.getImage());
  18. });
  19. });