Skip to content
This repository has been archived by the owner on Feb 24, 2024. It is now read-only.
/ chef Public archive

The autamus chef is cooking up Dockerfile recipes for any software you'd like!

License

Notifications You must be signed in to change notification settings

autamus/chef

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chef

Chef is an autamus container recipe writer. Using package from autamus.io, we can generate a Dockerfile with any set of packages!

img/chef-stash.png

Usage

Build

To run chef, you can either run the go file directly:

$ go run chef.go
USAGE: chef CMD [OPTIONS]

DESCRIPTION: Generate scientific software container recipes

COMMANDS:

    NAME      ALIAS  DESCRIPTION
    generate  g      Generate a Dockerfile from a chef config file.
    help      ?      Get help with a specific subcommand
    version          Print the version of this command

You can also build the binary first, and then run it.

$ go build
$ ./chef

Generate

Currently, the main command generate requires a chef config file that lists packages that you want to install from autamus.io. For example:

# chef.yaml
packages:
 - clingo:latest
 - python:latest

We would then generate the Dockerfile as follows:

$ chef generate

or

$ go run chef.go generate
FROM ghcr.io/autamus/clingo:latest as clingo
FROM ghcr.io/autamus/python:latest as python
FROM spack/ubuntu-bionic
COPY --from=clingo /opt/software /opt/spack/opt/spack
COPY --from=python /opt/software /opt/spack/opt/spack
ENV PATH=/opt/spack/bin:$PATH
WORKDIR /opt/spack
RUN rm -rf opt/spack/.spack-db/
ENTRYPOINT ["/bin/bash"]

You could easily pipe this into a Dockerfile:

$ go run chef.go generate chef.yaml > Dockerfile

To skip validation that the images/tags exist (you'd find out when you build the Dockerfile) do:

$ go run chef.go generate --skip-validation

If you don't provide a chef.yaml file, it defaults to chef.yaml. However you can provide a custom filename:

$ go run chef.go generate custom.yaml

About

The autamus chef is cooking up Dockerfile recipes for any software you'd like!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published