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 buildordocker-compose buildcommands. - Mandatory field: No
- Data Type: String
- Default value: null
context_path
- Used for
Dockerfiledeployments 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
Dockerfileinstead. 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 runcommand 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.