Run docker-compose down command with forwarded image names

($WERF_DOCKER_IMAGE_NAME for nameless image). <FORMATTED_WERF_IMAGE_NAME> is werf image name from werf.yaml modified according to the following

  • all characters are uppercase (app -> APP);
  • charset /- is replaced with _ (DEV/APP-FRONTEND -> DEV_APP_FRONTEND).

If one or more IMAGE_NAME parameters specified, werf will build and forward only these images.

Given the following werf configuration:


project: x configVersion: 1 — image: frontend dockerfile: frontend.Dockerfile — image: geodata-backend dockerfile: backend.Dockerfile

Use described images as follows in your docker compose configuration:




werf compose down [IMAGE_NAME...] [options] [--docker-compose-options="OPTIONS"] [--docker-compose-command-options="OPTIONS"]


  # Run docker-compose down with forwarded image names
  $ werf compose down

  # Print docker-compose command without executing
  $ werf compose down --docker-compose-options="-f docker-compose-test.yml" --docker-compose-command-options="--rmi=all --remove-orphans" --dry-run --quiet
  export WERF_APP_IMAGE_NAME=localhost:5000/project:570c59946a7f77873d361efd25a637c4ccde86abf3d3186add19bded-1604928781528
  docker-compose -f docker-compose-test.yml down --rmi=all --remove-orphans


            Use custom configuration file (default $WERF_CONFIG or werf.yaml in working directory)
            Custom configuration templates directory (default $WERF_CONFIG_TEMPLATES_DIR or .werf   
            in working directory)
            Enable development mode (default $WERF_DEV).
            The mode allows working with project files without doing redundant commits during       
            debugging and development
            Set dev git branch prefix (default $WERF_DEV_BRANCH_PREFIX or werf-dev-)
            Set development mode (default $WERF_DEV_MODE or simple).
            Two development modes are supported:
            - simple: for working with the worktree state of the git repository
            - strict: for working with the index state of the git repository
            Use specified project directory where project’s werf.yaml and other configuration files 
            should reside (default $WERF_DIR or current working directory)
            Define docker-compose bin path (default $WERF_DOCKER_COMPOSE_BIN_PATH)
            Define docker-compose command options (default $WERF_DOCKER_COMPOSE_COMMAND_OPTIONS)
            Define docker-compose options (default $WERF_DOCKER_COMPOSE_OPTIONS)
            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 and pull images from the specified repo
            Indicate what the command would do without actually doing that (default $WERF_DRY_RUN)
            Use specified environment (default $WERF_ENV)
            Use specified git work tree dir (default $WERF_WORK_TREE or lookup for directory that   
            contains .git in the current or parent directories)
            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)
            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).
            Loose werf giterminism mode restrictions (NOTE: not all restrictions can be removed,    
            more info, default              
            Docker Repo to store stages (default $WERF_REPO)
            Choose repo container registry.
            The following container registries are supported: ecr, acr, default, dockerhub, gcr,    
            github, gitlab, harbor, quay.
            Default $WERF_REPO_CONTAINER_REGISTRY or auto mode (detect container registry by 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)
   token (default $WERF_REPO_QUAY_TOKEN)
            Specify one or multiple secondary read-only repos with images that will be used as a    
            Also, can be specified with $WERF_SECONDARY_REPO_* (e.g. $WERF_SECONDARY_REPO_1=...,    
  -Z, --skip-build=false
            Disable building of docker images, cached images in the repo should exist in the repo   
            if werf.yaml contains at least one image description (default $WERF_SKIP_BUILD)
            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 repo.
             - $WERF_SYNCHRONIZATION, or
             - :local if --repo is not specified, or
             - if --repo has been specified.
            The same address should be specified for all werf processes that work with a single     
            repo. :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)