Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unclear about custom environment #233

Closed
joshdentremont opened this issue Feb 24, 2022 · 3 comments
Closed

Unclear about custom environment #233

joshdentremont opened this issue Feb 24, 2022 · 3 comments

Comments

@joshdentremont
Copy link
Contributor

It is unclear to me from the docs what the custom environment is actually doing. Is this a necessary process for running a production site, or is it ok to run a production site with the environment set to local?

Should we update the docs at https://islandora.github.io/documentation/installation/docker-custom/ to explain what it means to create a custom Drupal container vs bind mounting the codebase folder, why it is a good idea, etc?

@nigelgbanks
Copy link
Contributor

The repository probably needs a revisit in design at some point to align with actual use cases. The original intention is to have a way to package a Drupal site into a image that could then be deployed elsewhere. Though as you've found no one used it and overtime things changed. By and large I think a production site should be managed under its own repository. Probably have some layout like (this isn't a working example just a vague outline).

├── Dockerfile
├── drupal
│   ├── composer.json
│   ├── composer.lock
│   ├── config
│   │   ├── splits
│   │   └── sync
│   └── web
│       ├── modules
│       ├── profiles
│       └── themes
├── README.md
├── docker-compose.yml
└── rootfs

Where in the Dockerfile extends the islandora/drupal:${tag} image adding any additional packages etc needed, as well as copies the drupal folder into the image to /var/www/drupal/ and performs a composer install.

The modules, profiles, themes are for any custom Drupal code to the production site that do not merit their own repositories (i.e. no one in the wider community would use them).

The config folder is for keeping the drupal production site configuration under source control. Allowing one to bring up a site locally change configuration and export it, building a new image that could then be deployed to production.

The docker-compose.yml file could be many or just a single file derived from the services one wants to include, by say looking at isle-dc. Production may use docker compose for running the site, it's up to the use case.

Truth is at the end of the day we've not got a turn-key suits all solution; ready for production system. It's more like an a la-cart menu of things that can be used to customise and build something to fit ones needs. As the need for customisation is a big driver for many.

@noahwsmith
Copy link
Contributor

I'm very much in favor of this reorg. In our internal repositories (which diverged from isle-dc a long time ago) we have essentially done this.

@joshdentremont
Copy link
Contributor Author

My initial confusion should be cleared up by updates to documentation for setting up a production server - Islandora/documentation#2225

Nigel has also created a non-isle version of the structure he outlined above - https://github.com/Islandora-Devops/isle-site-template

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants