Build stages for images described in the werf.yaml.

The result of build command are built stages pushed into the specified stages storage (or locally
in the case when –stages-storage=:local).

If one or more IMAGE_NAME parameters specified, werf will build only these images stages from


werf build [IMAGE_NAME...] [options]


  # Build stages of all images from werf.yaml, built stages will be placed locally
  $ werf stages build

  # Build stages of image 'backend' from werf.yaml
  $ werf stages build backend

  # Build and enable drop-in shell session in the failed assembly container in the case when an error occurred
  $ werf build --introspect-error

  # Set --repo default value using $WERF_REPO param
  $ export
  $ werf build


  $WERF_DEBUG_ANSIBLE_ARGS  Pass specified cli args to ansible ($ANSIBLE_ARGS)


            Sign the intention of using shallow clone despite restrictions (default                 
            Use custom configuration file (default $WERF_CONFIG or werf.yaml in working directory)
            Change to the custom configuration templates directory (default                         
            $WERF_CONFIG_TEMPLATES_DIR or .werf in working directory)
            Use custom working directory (default $WERF_DIR or current directory)
            Specify docker config directory path. Default $WERF_DOCKER_CONFIG or $DOCKER_CONFIG or  
            ~/.docker (in the order of priority)
            Command needs granted permissions to read, pull and push images into the specified      
            stages storage, to pull base images
            Convert project git clone to full one (default $WERF_GIT_UNSHALLOW)
            Use specified dir to store werf cache files and dirs (default $WERF_HOME or ~/.werf)
            Use plain HTTP requests when accessing a registry (default $WERF_INSECURE_REGISTRY)
            Introspect failed stage in the clean state, before running all assembly instructions of 
            the stage
            Introspect failed stage in the state, right after running failed assembly instruction
            Introspect a specific stage. The option can be used multiple times to introspect        
            several stages.
            There are the following formats to use:
            * specify IMAGE_NAME/STAGE_NAME to introspect stage STAGE_NAME of either image or       
            artifact IMAGE_NAME
            * specify STAGE_NAME or */STAGE_NAME for the introspection of all existing stages with  
            name STAGE_NAME
            IMAGE_NAME is the name of an image or artifact described in werf.yaml, the nameless     
            image specified with ~.
            STAGE_NAME should be one of the following: from, beforeInstall, importsBeforeInstall,   
            gitArchive, install, importsAfterInstall, beforeSetup, importsBeforeSetup, setup,       
            importsAfterSetup, gitCache, gitLatestPatch, dockerInstructions, dockerfile
            Kubernetes config file path (default $WERF_KUBE_CONFIG or $WERF_KUBECONFIG or           
            Kubernetes config data as base64 string (default $WERF_KUBE_CONFIG_BASE64 or            
            Kubernetes config context (default $WERF_KUBE_CONTEXT)
            Set log color mode.
            Supported on, off and auto (based on the stdout’s file descriptor referring to a        
            terminal) modes.
            Default $WERF_LOG_COLOR_MODE or auto mode.
            Enable debug (default $WERF_LOG_DEBUG).
            Enable emojis, auto line wrapping and log process border (default $WERF_LOG_PRETTY or   
            Print current project directory path (default $WERF_LOG_PROJECT_DIR)
            Disable explanatory output (default $WERF_LOG_QUIET).
            Set log terminal width.
            Defaults to:
            * interactive terminal width or 140
            Enable verbose output (default $WERF_LOG_VERBOSE).
  -p, --parallel=true
            Run in parallel (default $WERF_PARALLEL)
            Parallel tasks limit, set -1 to remove the limitation (default                          
            $WERF_PARALLEL_TASKS_LIMIT or 5)
            Docker Repo to store stages (default $WERF_REPO)
            Docker Hub password (default $WERF_REPO_DOCKER_HUB_PASSWORD)
            Docker Hub token (default $WERF_REPO_DOCKER_HUB_TOKEN)
            Docker Hub username (default $WERF_REPO_DOCKER_HUB_USERNAME)
            GitHub token (default $WERF_REPO_GITHUB_TOKEN)
            Harbor password (default $WERF_REPO_HARBOR_PASSWORD)
            Harbor username (default $WERF_REPO_HARBOR_USERNAME)
            Choose repo implementation.
            The following docker registry implementations are supported: ecr, acr, default,         
            dockerhub, gcr, github, gitlab, harbor, quay.
            Default $WERF_REPO_IMPLEMENTATION or auto mode (detect implementation by a registry).
   token (default $WERF_REPO_QUAY_TOKEN)
            Report format (only json available for now, $WERF_REPORT_FORMAT by default)
            Report contains image info: full docker repo, tag, ID — for each image                  
            ($WERF_REPORT_PATH by default)
            Skip TLS certificate validation when accessing a registry (default                      
            Use only specific ssh key(s).
            Can be specified with $WERF_SSH_KEY* (e.g. $WERF_SSH_KEY_REPO=~/.ssh/repo_rsa",         
            Defaults to $WERF_SSH_KEY*, system ssh-agent or ~/.ssh/{id_rsa|id_dsa}, see             
  -S, --synchronization=''
            Address of synchronizer for multiple werf processes to work with a single stages        
            storage (default :local if --stages-storage=:local or kubernetes://werf-synchronization 
            if non-local stages-storage specified or $WERF_SYNCHRONIZATION if set). The same        
            address should be specified for all werf processes that work with a single stages       
            storage. :local address allows execution of werf processes from a single host only.
            Use specified dir to store tmp files and dirs (default $WERF_TMP_DIR or system tmp dir)
            Enable virtual/ephemeral merge commit mode when building current application state      
            ($WERF_VIRTUAL_MERGE by default)
            Commit hash for virtual/ephemeral merge commit with new changes introduced in the pull  
            request ($WERF_VIRTUAL_MERGE_FROM_COMMIT by default)
            Commit hash for virtual/ephemeral merge commit which is base for changes introduced in  
            the pull request ($WERF_VIRTUAL_MERGE_INTO_COMMIT by default)