Chalk’s runs your feature pipelines on Docker images. If your code relies only on the resolvers and data definitions you define, using Chalk’s base image with no modification is a good option. However, if you require additional dependencies, you’ll need to specify how to install and manage them.
You can specify build options on a per-environment basis, and you can provide a default set of configuration for environments that do not have explicit configuration values.
Chalk can install extra dependencies with pip.
By default, Chalk looks for a file named
requirements.txt in the base
of your project.
However, you can override this location or specify requirements
files per-environment in the
chalk.yaml file located at the base
of your repo.
project: my-project-id environments: default: runtime: python311 requirements: ./requirements.txt dockerfile: Dockerfile prod: requirements: ./requirements-prod.txt
You may have dependencies that cannot be expressed through
For those dependencies, you need to customize the base image Chalk uses
to run your pipelines.
Chalk allows you to specify a custom Dockerfile
that will be used to build a base image for your deploys.
project: my-project-id environments: default: dockerfile: ./Dockerfile prod: dockerfile: ./DockerfileProd
You build any Debian-based image that you like, with a few requirements:
pythonmust be on the path
pipmust be on the path
Chalk is responsible for mounting your code into the image, and for installing your requirements with pip.
The Python version for a Chalk project is set at the project level.
The version is set with the
.chalk.yml file in your project repo.
Chalk supports both
python311 as values for
project: my-project-id environments: default: runtime: python311 prod: runtime: python310