lenra-io/dofigen: Dofigen is a Dockerfile generator using a simplified description in YAML or JSON format - lenra-io/d

github.com · 2026-09-26 · by Long Nguyen ·github
Dofigen is a Dockerfile generator using a simplified description in YAML or JSON format - lenra-io/dofigen

lenra-io/dofigen

Dofigen is a Dockerfile generator using a simplified description in YAML or JSON format - lenra-io/dofigen

75 stars · 5 forks

README

Dofigen

Dofigen is a Dockerfile generator using a simplified description in YAML or JSON format. It defines default values and behaviors that simplify the creation of Dockerfiles. Dofigen is also made to use the Buildkit, which is now the default Docker build engine, optimizations that speed-up the Docker image build by parallelizing the layer builds. A french DevOps said about it:

C'est une bouffée, Dofigen, dans ce monde de con...teneurs.

Report Bug · Request Feature

Getting Started Prerequisites Install Dofigen using one of the following options. Use it with Docker You can run Dofigen directly from its Docker image with the following command: docker run --rm -it -v $(pwd):/app -u $UID lenra/dofigen --help Arch Linux dofigen is available as an AUR package. You can install it using an AUR helper (e.g. paru): paru -S dofigen Cargo First install Cargo, the Rust package manager: https://doc.rust-lang.org/cargo/getting-started/installation.html Then use the following command to install dofigen: cargo install dofigen Homebrew You can install Dofigen using Homebrew: brew tap lenra-io/tools brew install dofigen Or: brew install lenra-io/tools/dofigen Download the binary You can download the Dofigen binary from the release page and add it to your path environment variable. (back to top) Migrate from an existing Dockerfile You can generate a Dofigen file from an existing Dockerfile using the dofigen parse command: dofigen parse This command will read the Dockerfile from the current directory and generate a dofigen.yml file. See the dofigen parse --help command for more options. (back to top) How to use it To generate a Dockerfile, you need to create a Dofigen file dofigen.yml and run the next command: dofigen gen Use the help options to understand how to override default behaviors: $ dofigen gen --help Generate the Dockerfile and .dockerignore files

Usage: dofigen generate [OPTIONS]

Options: -f, --file <FILE> The input Dofigen file. Default search for the next files: dofigen.yml, dofigen.yaml, dofigen.json Use "-" to read from stdin --offline The command won't load data from any URL. This disables extending file from URL and loading image tag -o, --output <OUTPUT> The output Dockerfile file Define to - to write to stdout [default: Dockerfile] -l, --locked Locked version of the dofigen definition -n, --no-labels Do not define the default labels -h, --help Print help To look further use the help command: dofigen --help Dofigen descriptor The structure of the Dofigen descriptor was created to be simpler than the Dockerfile. The structure description is detailed here. Here is an example to generate the Dofigen Dockerfile: builders: muslrust: fromImage: clux/muslrust:stable workdir: /app bind: - Cargo.toml - Cargo.lock - src/ run: # Build with musl to work with scratch - cargo build --release # copy the generated binary outside of the target directory. If not the other stages won't be able to find it since it's in a cache volume - mv target/x86_64-unknown-linux-musl/release/dofigen /tmp/ cache: # Cargo cache - /home/rust/.cargo # build cache - /app/target

Runtime

workdir: /app copy: - fromBuilder: muslrust paths: "/tmp/dofigen" target: "/bin/" entrypoint: dofigen cmd: --help context: - "/src" - "/Cargo.*" Extending external files You can extend the Dofigen file with external files using the extend attribute. You can find some Dofigen templates on the Dofigen Hub repository. Here is an example of extending a Dofigen file: extend: - https://raw.githubusercontent.com/lenra-io/dofigen/main/dofigen.yml You can also override or merge the structure of the extended files: extend: - https://raw.githubusercontent.com/lenra-io/dofigen/main/dofigen.yml user: 1001 The lock file Dofigen generates a lock file to keep the version of the Dofigen descriptor used to generate the Dockerfile. The lock file also keep the loaded resources and images tags to rebuild the Dockerfile with the same versions. To update the images and resources, you can use the dofigen update command. To regenerate the Dockerfile with the same versions, you can use the dofigen gen --locked command. (back to top)

Contributing Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Don't forget to give the project a star! Thanks again! New here? Check the good first issues and read the contributing guide for the development setup, coding conventions and PR workflow. (back to top)

License Distributed under the MIT License. See LICENSE for more information. (back to top)

Contact Lenra - @lenra_dev - contact@lenra.io Project Link: https://github.com/lenra-io/dofigen (back to top)

source

github.com · 8 images · 123 links

Comments (0)

No comments yet