Docksal relies on Docker Compose to launch groups of related containers. The yml files you use are Compose Files. Please read the documentation to understand their main sections.
Some containers and their parameters are required for Docksal to work properly. Please see Don’t break your Docksal setup! section.
You have to run
fin project start (
fin p start for short) to apply configuration changes.
If you remove services or volumes you have to remove them with
fin project rm [service].
docksal.yml is a Compose file.
It’s the main configuration file for a project and controls its the settings for each service. Use it to
modify settings that are needed for anyone that uses your project.
If you don’t have this file in your project folder, fin will load the default stack, this way providing a zero-configuration setup.
For more details on its role, check loading order.
docksal.env is an Environment file.
It is used to override of some of the default environment variables, without the need for
docksal.yml file (e.g., to override
MYSQL_ROOT_PASSWORD) or to provide additional environment
variables for your automation scripts (see custom commands).
docksal-local.env are used for additional customizations that happen after the main files
are loaded. See loading order. A good example of their use is exposing custom ports
or switching PHP versions.
These files are intended for local overrides. They should be added to
.gitignore and never committed into a project
repo. You can always include an example file in the repo, e.g.,
example.docksal-local.env, and instruct users to copy
it and adjust as necessary.
Docksal ships with a set of default configurations (stacks), which are
yml files stored in
These files are a good reference when you begin creating a custom project configuration.
||Different bindings for Docker volumes. The default is
||Contains default service descriptions. Used for zero-configuration.|
||The default stack with 3 services that inherits
||Same configuration as
||Acquia-like stack with Solr, Varnish and memcached|
Do not change or customize existing default stacks.
.docksal folder in your project to customize the project configuration.
With this swarm of configuration files, Docksal lets you configure a project in a way that works for you and your team. Just like Bash configuration files (/etc/profile, bashrc, bash_profile, bash_logout), they give the flexibility to configure a Docksal project in dozens of ways.
fin loads files in a certain order. Files loaded later override settings from the files loaded earlier.
The list below goes from the earliest to the latest in this queue.
volumes-bind.ymlloads at the moment (volumes in Docksal)
$HOME/.docksal/stacks/stack-*.yml- only loads if there is no
docksal.ymlin the project or if forced by settings the
docksal.yml- extends the stack if
DOCKSAL_STACKis set in
docksal.envor completely overrides it otherwise
docksal.env- sets or modifies environment variables
docksal-local.yml- extends the loaded stack or
docksal-local.env- sets or modifies environment variables set previously
To see the files loaded for a particular project run
fin config show.
To see all Docker Hub images produced and supported by Docksal team run:
fin image registry
To get all tags of a certain image provide its name with the same command. For example:
fin image registry docksal/db