Our setup is based on Shopware 6 installed using the Symfony flex template and strictly requires all plugins and apps to be installed via composer. The base is shopware/docker, so install it with composer using the following command:
composerreqshopware/docker
Afterwards, check the status of your recipes with composer recipes and update if needed with:
Also, we need shopware/deployment-helper for the deployment process, so run:
composerreqshopware/deployment-helper
Create a new docker-compose.yml file with the following content. (I put mine in the newly created docker folder, but it doesn't really matter. You will tell Coolify the exact path later).
The permissions service just does what its name says.
The setup service builds the Shopware project with its composer dependencies and also builds the admin and storefront components. Eventually it performs the necessary steps to recompile the theme(s) and to update Shopware and the plugins. The latter is performed by Shopware's deployment helper, see https://github.com/shopware/deployment-helper/blob/main/README.md for more information on how to configure the deployment.
The web, worker and scheduler services perform the actual runtime tasks.
The volumes are used to persist media files, private files and other data. In a production environment, it is recommended to use an external storage provider like S3 to store media and private files. In my setup, I also bind a /var/data folder to the containers, it is used later for example to write database and file backups.