Project structure
- Topics:
- Cloud
CREATED FOR:
- Admin
- Developer
An Adobe Commerce on cloud infrastructure project includes essential files for credentials and application configuration. These files are available in as template according to the Adobe Commerce version. See the cloud templates based on Adobe Commerce version in the magento/magento-cloud
GitHub repository.
The following table describes the files included in a cloud project:
File | Description |
---|---|
/.magento/routes.yaml | Configuration file that redirects www to the apex domain and php application to serve HTTP. See Configure routes. |
/.magento/services.yaml | A configuration file that defines a MySQL instance (MariaDB), Redis, and OpenSearch or Elasticsearch. See Configure services. |
/app | The code folder is used for custom modules. The design folder is used for custom themes. The etc folder contains configuration files for the application. |
/m2-hotfixes | Used for custom patches. |
/update | A service folder used by the support module. |
.gitignore | Specify which files and directories to ignore. See .gitignore reference. |
.magento.app.yaml | A configuration file that defines the properties to build your application. See Configure application. |
.magento.env.yaml | Configuration file for the build, deploy, and post-deploy phases. The ece-tools package includes a sample of this file. See Configure environments. |
composer.json | Fetches Adobe Commerce and the configuration scripts to prepare your application. See Required packages. |
composer.lock | Stores version dependencies for every package. See Required packages. |
magento-vars.php | Used to define multiple stores and sites using variables. |
.magento
directory, then the script deletes the directory and its contents. Your local development environment is not affected.Application root directory
The location of the application root directory depends on the environment.
- Starter and Pro Integration:
/app
- Starter Production:
/<project-ID>
- Pro Staging:
/<project-ID>_stg
- Pro Production:
/<project-ID>
Writable directories
The remote Integration, Staging, and Production environments are read only. The following directories are the only writable directories for security reasons:
var
pub/static
pub/media
app/etc
/tmp
/tmp
directory that is not shared with the other nodes.Ignore files
There is a base .gitignore
file with the Adobe Commerce on cloud infrastructure project repository. See the latest .gitignore file in the magento-cloud repository. To add a file that is in the .gitignore
list, you can use the -f
(force) option when staging a commit:
git add <path/filename> -f
Change base template
You can use the following steps to change the structure of an existing project to reflect the latest base template for Adobe Commerce on cloud infrastructure.
-
Clone the project to a local workstation.
-
Update the
composer.json
file with the following values for theextra
section."extra": { "magento-force": true "magento-deploystrategy": "copy" }
-
Add the
.gitignore
file designed for the base template. For example, if you need the.gitignore
file for the version 2.2.6 template, use the .gitignore for 2.2.6 file as a reference. -
Clear the git cache.
git rm -r --cached .
-
Add and commit changes.
git add -A && git commit -m "Update base template"