Anatomy of a Divio Cloud project¶

The project build process¶

Local builds¶

  • The Divio CLI clones (downloads) the project’s files from the Divio CloudGit server.
  • The project’s docker-compose.yml file is invoked, telling Dockerwhat containers need to be created, starting with the web container,which is built using…
  • …the project’s Dockerfile. This tells Docker how to build thethe project’s containers - Docker begins executing the commands containedin the file.
  • If necessary, Docker downloads the layers from which the container imageis built.
  • Docker continues executing the commands, which will include copying files,installing packages using Pip, and running Django management commands.
  • Docker returns to the docker-compose.yml, which sets up filesystem,port and database access for the container, and the database containeritself.
  • The docker-compose.yml file contains a default command that startsup the Django server.
  • The Divio CLI opens a web browser window with a login page for the locallyrunning site.

Addons’ templates in projects¶

In your Divio Cloud project directories, you will find a templatesdirectory. This is the place for your project’s templates, such as its own basetemplates.

It’s also where you can place templates to override addon applications’templates. Templates at the project level will override templates at theapplication level if they are on similar paths. This is standard Django behaviour,allowing application developers to provide templates that can easily becustomised.

On initial project creation¶

For your convenience, when you first create a project, any templates in addonsare copied to the project level so you have them right at hand.

For example, templates from Aldryn News & Blog will be copied totemplates/aldryn_newsblog/ in your project.

If a template does not exist in the project’s templates directory, Djangowill simply fall back to the one in the addon itself.

Subsequent addon updates¶

After templates have been copied to the project’s templates directory, theywill not be copied again, so as not to overwrite any changes the projectdeveloper may have made. However, this does mean that if an addon issubsequently updated and its templates change, those changes will not appear inyour project.

In this case:

  • if you have made changes to the templates in your project, you will need toobtain any updated templates and merge them with your own versions
  • if you have not made any changes, you can simply delete your local versionsand Django will use the updated application templates.

原文: http://docs.divio.com/en/latest/background/anatomy-project.html