Squash YAML: Docker specific fields
Back to the Squash YAML file page.
The Docker based build process
Here is a sample of a Squash YAML file with two applications within the same repo. Each application requires its own Dockerfile or docker-compose file.
deployments: CRM: filename: ./src/crm/Dockerfile context_path: ./src vm_size: 1GB CoreApp: filename: ./src/coreapp/docker-compose.yml context_path: ./src vm_size: 2GB
Supported YAML fields
The YAML fields below are supported on Docker based deployments only.
build_options
- Additional options that will be added to either the
docker build
ordocker-compose build
commands. - Mandatory field: No
- Data Type: String
- Default value: null
context_path
- Used for
Dockerfile
deployments only. Defines the context path option, by default value is ‘.’. - Mandatory field: No
- Data Type: String
- Default value: ‘.’
dockerfileonly
- Forces to ignore any available docker-compose files and use a
Dockerfile
instead. By default, this option is defined automatically. - Mandatory field: No
- Data Type: Boolean
- Default value: True
dockerimage
- Defines a docker image that should be used for the
docker run
command instead of building an image from Dockerfile. This accepts any images from the Docker Public registry or images from a private registry (see "docker_registry" field below) - if the docker_registry field is defined. - Mandatory field: No
- Data Type: String
- Default value: null
docker_registry
- Allows to pull docker images from specified private registry server.
- Mandatory field: No
- Data Type: dict
- Default value: null
- Required fields:
- username
- password
.squash.yml
sample:
deployments: MyAppName: dockerimage: your_dockerimage_name docker_registry: server: example.io username: your_username password: $REGISTRY_PASSWORD
For the example above, $REGISTRY_PASSWORD
has been defined in Squash itself using environment variables.
filename
- This is the full path of a Dockerfile name or docker-compose.yml file
- Mandatory field: No
- Data Type: String or List (see examples below)
- Default value: null
Example using a Dockerfile:
deployments: MyApp: filename: ./src/Dockerfile
docker-compose example:
deployments: MyApp: filename: ./docker-compose.yml
You may also specify multiple docker-compose files, this is handy when sharing configurations between files:
deployments: MyApp: filename: - ./docker-compose-base.yml - ./docker-compose-app.yml
Squash will use the docker-compose files in the order specified, from top to bottom. For the example above the first file would be docker-compose-base.yml.