|
122 | 122 | cargo-nextest |
123 | 123 | direnv |
124 | 124 | gateway-crd |
| 125 | + hwloc.dev |
125 | 126 | just |
126 | 127 | kopium |
127 | 128 | llvmPackages'.clang # you need the host compiler in order to link proc macros |
|
383 | 384 | } |
384 | 385 | ) package-list; |
385 | 386 |
|
386 | | - dataplane-tar = pkgs.stdenv'.mkDerivation { |
387 | | - pname = "dataplane-tar"; |
| 387 | + min-tar = pkgs.stdenv'.mkDerivation { |
| 388 | + pname = "min-tar"; |
388 | 389 | inherit version; |
389 | 390 | dontUnpack = true; |
390 | 391 | src = null; |
|
394 | 395 | in |
395 | 396 | '' |
396 | 397 | tmp="$(mktemp -d)" |
397 | | - mkdir -p "$tmp/"{bin,lib,var,etc,run/dataplane,run/frr/hh,run/netns} |
| 398 | + mkdir -p "$tmp/"{bin,lib,var,etc,run/dataplane,run/frr/hh,run/netns,home} |
398 | 399 | ln -s /run "$tmp/var/run" |
399 | | - cp --dereference "${workspace.dataplane}/bin/dataplane" "$tmp/bin" |
400 | | - cp --dereference "${workspace.cli}/bin/cli" "$tmp/bin" |
401 | | - cp --dereference "${workspace.init}/bin/dataplane-init" "$tmp/bin" |
402 | | - ln -s cli "$tmp/bin/sh" |
403 | 400 | for f in "${pkgs.pkgsHostHost.dockerTools.fakeNss}/etc/"* ; do |
404 | 401 | cp --archive "$(readlink -e "$f")" "$tmp/etc/$(basename "$f")" |
405 | 402 | done |
|
419 | 416 | --group=0 \ |
420 | 417 | \ |
421 | 418 | `# anybody editing the files shipped in the container image is up to no good, block all of that.` \ |
422 | | - `# More, we expressly forbid setuid / setgid anything. May as well toss in the sticky bit as well.` \ |
423 | | - --mode='u-sw,go=' \ |
| 419 | + `# More, we expressly forbid setuid / setgid anything.` \ |
| 420 | + --mode='ugo-sw' \ |
424 | 421 | \ |
425 | 422 | `# acls / setcap / selinux isn't going to be reliably copied into the image; skip to make more reproducible` \ |
426 | 423 | --no-acls \ |
|
469 | 466 |
|
470 | 467 | }; |
471 | 468 |
|
| 469 | + dataplane-tar = pkgs.stdenv'.mkDerivation { |
| 470 | + pname = "dataplane-tar"; |
| 471 | + inherit version; |
| 472 | + dontUnpack = true; |
| 473 | + src = null; |
| 474 | + buildPhase = |
| 475 | + '' |
| 476 | + tmp="$(mktemp -d)" |
| 477 | + tar xf "${min-tar}" -C "$tmp" |
| 478 | + chown -R $(id -u):$(id -g) $tmp |
| 479 | + chmod +w $tmp/bin |
| 480 | + cp --dereference "${workspace.dataplane}/bin/dataplane" "$tmp/bin" |
| 481 | + cp --dereference "${workspace.cli}/bin/cli" "$tmp/bin" |
| 482 | + cp --dereference "${workspace.init}/bin/dataplane-init" "$tmp/bin" |
| 483 | + ln -s cli "$tmp/bin/sh" |
| 484 | + cd "$tmp" |
| 485 | + # we take some care to make the tar file reproducible here |
| 486 | + tar \ |
| 487 | + --create \ |
| 488 | + --file "$out" \ |
| 489 | + --sort=name \ |
| 490 | + --clamp-mtime \ |
| 491 | + --mtime=0 \ |
| 492 | + --format=posix \ |
| 493 | + --numeric-owner \ |
| 494 | + --owner=0 \ |
| 495 | + --group=0 \ |
| 496 | + --mode='ugo-sw' \ |
| 497 | + --no-acls \ |
| 498 | + --no-xattrs \ |
| 499 | + --no-selinux \ |
| 500 | + --verbose \ |
| 501 | + . |
| 502 | + ''; |
| 503 | + |
| 504 | + }; |
| 505 | + |
| 506 | + containers.libc = pkgs.dockerTools.buildLayeredImage { |
| 507 | + name = "dataplane-debugger"; |
| 508 | + tag = "latest"; |
| 509 | + contents = pkgs.buildEnv { |
| 510 | + name = "dataplane-debugger-env"; |
| 511 | + pathsToLink = [ |
| 512 | + "/bin" |
| 513 | + "/etc" |
| 514 | + "/var" |
| 515 | + "/lib" |
| 516 | + ]; |
| 517 | + paths = [ |
| 518 | + pkgs.pkgsBuildHost.gdb |
| 519 | + pkgs.pkgsBuildHost.rr |
| 520 | + pkgs.pkgsBuildHost.coreutils |
| 521 | + pkgs.pkgsBuildHost.bashInteractive |
| 522 | + pkgs.pkgsBuildHost.iproute2 |
| 523 | + pkgs.pkgsBuildHost.ethtool |
| 524 | + |
| 525 | + pkgs.pkgsHostHost.libc.debug |
| 526 | + workspace.cli.debug |
| 527 | + workspace.dataplane.debug |
| 528 | + workspace.init.debug |
| 529 | + ]; |
| 530 | + }; |
| 531 | + }; |
| 532 | + |
472 | 533 | containers.dataplane-debugger = pkgs.dockerTools.buildLayeredImage { |
473 | 534 | name = "dataplane-debugger"; |
474 | 535 | tag = "latest"; |
|
500 | 561 | { |
501 | 562 | inherit |
502 | 563 | clippy |
503 | | - dataplane-tar |
504 | 564 | containers |
| 565 | + dataplane-tar |
505 | 566 | dev-pkgs |
506 | | - devroot |
507 | 567 | devenv |
| 568 | + devroot |
| 569 | + min-tar |
508 | 570 | package-list |
509 | 571 | pkgs |
510 | 572 | sources |
|
0 commit comments