Skip to main content

Nua-build

Build system for Nua packages.

Nua is an open source, self-hosted cloud platform project (a PaaS - platform as a service).

This packaged is mostly used internally. The main entry point is the nua command line tool (see: Nua on PyPI or nua-cli on GitHub).

Purpose

The nua-build package is used to build packages deployable by the Nua orchestrator.

The current version of nua-build builds Docker images for an amd64 Linux environment. There are plans to extend the system to other container and isolation architectures in future releases.

nua-build relies on a nua-config configuration file containing application build directives. This configuration can reference other local or remote providers and is supplemented by default values. The file can be formatted as TOML, JSON or YAML.

Build sequence:

The main steps to build a Nua image:

  • Analysis of the nua-config file,
  • detection of the required base images,
  • build or pull base images if needed,
  • collect files (Dockerfile, configuration files),
  • build a Docker container using the nua-agent,
  • store locally the resulting images as a tar file.

About Dockerfile

nua-build allows 2 approaches for image generation:

  • The package can use a generic Dockerfile provided by nua-build, in which case most of the containerization work is done by a python script (build.py) executed in the container being built. This permits a build with a single RUN command in the docker file, but requires to specify the build through the nua-config config file and some python script.

  • The package can use a dedicated (potentially pre-existing) Dockerfile. Then this Dockerfile must be modified slightly to add the metadata to the image:

RUN mkdir -p /nua/metadata
COPY nua-config.toml /nua/metadata/

Containerization layers

Standard Nua images are images build from nua-build's default Dockerfile.

Standard Nua images contain three layers:

  • A Linux image (Ubuntu 22.04 LTS Jammy, amd64),
  • nua-python, addition of python 3.10,
  • nua-builder, addition of nua-agent and nua-lib.

All standard Nua packages have a Python environment.

Some other base images are available to facilitate builds in other programming environments: nua-builder-nodejs16, nua-builder-nodejs18, nua-builder-nodejs20.

Dependencies on other Nua Python packages

nua-build uses the following packages:

  • nua-lib: common code for all Nua packages. It provides:

    • shell: shell shortcuts (mostly wrappers above subprocess and shutil)
    • exec: shortcuts to execute sub commands like exec_as_root(), exec_as_root()
    • actions: higher level commands, related to the installation of packages and dependencies (wrappers above apt, pip, ...)
  • nua-agent: agent for building Nua apps. It provides:

    • app_builder: actual builder of the application inside the Docker image.

Dependency graph

Dependency graph

Metadata

Release files for nua-build 0.5.43

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nua-build 0.5.43
File Size Uploaded
nua_build-0.5.43.tar.gz 20.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nua-build 0.5.43
File Interpreter ABI Platform
nua_build-0.5.43-py3-none-any.whl Python 3 none any Details

Total release size: 52.0 kB

Release files / nua_build-0.5.43.tar.gz

Download URL nua_build-0.5.43.tar.gz
Size 20.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6c97b8809f6b45a45d5007269f803d8fd51818255dc030ccb0ef739d67b17d30
BLAKE2b-256 checksum
How to use checksums
d47b423c9f801090eb64442863aad2c6767c210972237310d2b130b87b3559c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / nua_build-0.5.43-py3-none-any.whl

Download URL nua_build-0.5.43-py3-none-any.whl
Size 31.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
860d789691215710f3dca8bd146058242a8714fbd36a29667b097b96bce82321
BLAKE2b-256 checksum
How to use checksums
95a955ca2f6769e5c5a415022ee8461e47dd14af7596afa2940a6009e4d67e9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.5.43 This release

2 release files

0.5.17

2 release files

0.5.14

2 release files

0.5.13

2 release files

0.5.11

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page