Project structure
All Adobe Commerce on cloud infrastructure projects include essential files for credentials and application configuration:
File | Description |
---|---|
/.magento/routes.yaml |
Configuration file that redirects www to the naked domain and php application to serve HTTP. See Configure environments. |
/.magento/services.yaml |
Configuration file that defines a MySQL instance (MariaDB), Redis, and OpenSearch or Elasticsearch. See Configure environments. |
/app |
The code folder is used for custom modules. The design folder is used for custom themes. See Install a theme. 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 |
Configuration file that defines the properties to build your application. See Configure environments. |
.magento.env.yaml |
Configuration file that defines actions for the build, deploy, and post-deploy phases. The ece-tools package includes a sample of this file with detailed descriptions for the available variables. See Configure environments. |
composer.json |
Fetches the Adobe Commerce and the necessary configuration scripts to prepare your application. See Prepare your install. |
composer.lock |
Stores version dependencies for every package. |
magento-vars.php |
A file used to define multiple stores and sites using variables. |
When you push your local environment to the remote server, our deploy script uses the values defined by configuration files in the .magento
directory, then the script deletes the directory and its contents. Your local development environment is not affected.
Application root directory
The application root directory is located in different locations depending on the environment.
- Starter and Pro Integration:
/app
- Starter Production:
/<project-ID>
- Pro Staging:
/<project-ID>_stg
- Pro Production:
/<project-ID>
Writable directories
In Integration, Staging, and Production, only the following directories are writable due to security reasons:
var
pub/static
pub/media
app/etc
/tmp
In Production and Staging environments, each node in the three-node cluster has a /tmp
directory that is not shared with the other nodes.
Ignoring files
We include a base .gitignore
file with the Adobe Commerce on cloud infrastructure project repository. See the latest .gitignore file in the magento-cloud repository. If you need to add a file that is in the ignore list, you can use the -f
(force) option when staging a commit:
1
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 project to local workstation.
-
Update the
composer.json
file with the following values for theextra
section.1 2 3 4
"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.
1
git rm -r --cached .
-
Add and commit changes.
1
git add -A && git commit -m "Update base template"