Dependencies
PackageDependencies specifies dependency information for a particular package. This includes dependencies for runtime, which will be installed along with the package by the package manager, as well as any dependencies needed to build and/or test the resulting package. Configuration for any additional package repositories which are required may also be added here.
Fields
Build: The list of packages required to build the package.
build: package_name: version: [">=1.0.0", "<2.0.0"] arch: ["amd64", "arm64"]Runtime: The list of packages required to install/run the package.
runtime: package_name: version: [">=1.0.0", "<2.0.0"] arch: ["amd64", "arm64"]Recommends: The list of packages recommended to install with the generated package.
recommends: package_name: version: [">=1.0.0", "<2.0.0"] arch: ["amd64", "arm64"]Sysext: The list of packages to include in the generated system extension. No dependency resolution is performed when generating system extensions, so all required dependencies must be explicitly listed here.
sysext: package_name: version: [">=1.0.0", "<2.0.0"] arch: ["amd64", "arm64"]
Test: Lists and extra packages required for running tests. These are only installed for tests which have steps that require running a command in the built container. See TestSpec for more information
test: - package_name_1 - package_name_2ExtraRepos: Used to inject extra package repositories that may be used to satisfy package dependencies in various stages.
extra_repos: - keys: mykey: http: URL: "https://example.com/mykey.gpg" permissions: 0644 config: myrepo: http: url: "https://example.com/myrepo.list" data: - dest: "/path/to/dest" spec: source envs: ["build", "test", "install"]See repositories for more details on repository configs.
Example
dependencies:
build:
gcc:
version: [">=9.0.0"]
arch: ["amd64"]
runtime:
libc6:
version: [">=2.29"]
recommends:
curl:
version: [">=7.68.0"]
sysext:
zstd:
version: [">=1.5.0"]
test:
- bats
extra_repos:
- keys:
mykey:
http:
url: "https://example.com/mykey.gpg"
permissions: 0644
config:
myrepo:
http:
url: "https://example.com/myrepo.list"
# this assumes that a build context named `my-local-repo` containing a local repository will be passed
# to the Dalec build.
# /opt/repo can now be referenced as a local repository in a repository config imported to dalec
data:
- dest: "/opt/repo"
spec:
context:
name: "my-local-repo"
envs: ["build", "install"]