mirror of
https://github.com/danderson/netboot.git
synced 2025-08-06 22:57:20 +02:00
Packages and utilities for network booting
* dockerfiles: Drop duplicate mkdir The mkdir gets executed if "Building from local dev copy", whereas if built from upstream git, go get will take care of it. * dockerfiles: Drop extra community repo No longer needed with current edge or stable tags of alpine linux. * dockerfiles: Drop gcc as an explicit dep; go pulls it Current edge and 3.5 declare gcc as a dep for go. * dockerfiles: Install glide from package repo Both edge and 3.5 provide a packaged glide. By using the provided package, we reduce the build time a little. * dockerfiles: Set GLIDE_HOME to prevent glide to pollute /root glide promptly ignores HOME (it checks /etc/passwd), but honours GLIDE_HOME. So, by pointing GLIDE_HOME to a ephemeral dir, ~/.glide will be created there instead of /root/.glide, simplifying the cleanup process. * dockerfiles: Use --purge to ensure clean package uninstalls This way, /usr/lib/go gets purged, and we don't have to remove it manually. * dockerfiles: Move netboot tree instead of copying it Less space used and slightly faster build. * dockerfiles: Simplify build steps go build will honour GOBIN and leave the executable there. * dockerfiles: Move the installation of packages to the top * dockerfiles: Upgrade first, then install new stuff * dockerfiles: Tie build deps with a virtual package for easier removal By deleting the virtual .build-deps package, one ensures the no-package-left-behind policy :-) * dockerfiles: Split package list in multiple lines It's a good practice for enhancing the readability of pull requests, since addition or removal of packages from the list will result in single line changes. * dockerfiles: Drop changing dir to / No need to change directory in order do the cleanup. * dockerfiles: Test the existence of the go package, instead of .git This way we can add .git to .dockerignore, thus preventing copying it over when building the image. * dockerfiles: Add .dockerfile files to minimize the files that are copied over * dockerfiles: Place build logic in the Dockerfile Makes it easier to understand the build process if the whole sequence is stored in a single place. OTOH, editing the shell script inside the Dockerfile is a bit harder. * dockerfiles: Create a sandbox where to put all transient files * dockerfiles: Set GLIDE_HOME to the sandbox * dockerfiles: Set GOPATH to a dir under the sandbox * dockerfiles: Simplify cleanup * dockerfiles: Rename 'stuff' to 'context', to use Dockerfile lore * dockerfiles: Install entrypoint onto /usr/local/bin This is the default location for locally managed binaries, and as such, PATH includes it. This way, it is easier to run it interactively. * dockerfiles: Extract sandbox and context paths into variables * dockerfiles: Move vars up to help define other vars before they are used * dockerfiles: Add the required vars to eliminate duplicated paths * dockerfiles: Replace hardcoded paths with references to vars * dockerfiles: Fix wording for clarity * dockerfiles: Add emtpy line to improve readability * dockerfiles: Tell the go linker to strip debugging symbols This produces a sensibly smaller binary. * dockerfiles: Drop the --rm to docker build, as it is the default behaviour * dockerfiles: Use long flags for readability * dockerfiles: Base image onto alpine:3.5 Now that 3.5 has been released, we can use it instead of edge, since it provides go 1.7.3. We get a more stable environment, plus a smaller image. |
||
---|---|---|
cmd | ||
dhcp4 | ||
dockerfiles/pixiecore | ||
pcap | ||
pixiecore | ||
tftp | ||
third_party | ||
.dockerignore | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
glide.lock | ||
glide.yaml | ||
LICENSE | ||
Makefile | ||
README.md |
Netboot, packages and utilities for network booting
This repository contains Go implementations of network protocols used in booting machines over the network, as well as software that make use of those implementations.
This is not an official Google project.
The canonical import path for Go packages in this repository is go.universe.tf/netboot
.
Libraries
- pcap: Pure Go implementation of reading and writing pcap files.
- dhcp4: DHCPv4 library providing the low-level bits of a DHCP client/server (packet marshaling, RFC-compliant packet transmission semantics).
- tftp: Read-only TFTP server implementation.
- pixiecore: the functionality of Pixiecore (see below), in library form. Every stability warning in this repository applies double for this package.
Programs
- Pixiecore: an all-in-one tool for easy netbooting.