-
Notifications
You must be signed in to change notification settings - Fork 6
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
First pass edits to README. #4
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -59,39 +59,42 @@ There are a number of `docker-compose.yml` files provided by this repository: | |
|
||
## Override | ||
|
||
This repository ignores `docker-compose.override.yml` which will be included in | ||
any `docker compose` commands you invoke by default. | ||
This git repository does not track `docker-compose.override.yml` which will | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why? Are we supposed to put secret stuff there? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is intended to be the location where you drop your institution's specific overrides. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, but I just created a Git Repo to hold all my institution's customizations (so I thought). What was the purpose of doing that, if they're not to be included? |
||
be included by default in all `docker compose` commands you invoke. | ||
|
||
Two platform dependent templates that allow for access to the hosts `SSH agent` | ||
are provided for `development` environments. | ||
|
||
Simply copy the appropriate `docker-compose.PLATFORM.yml` file into | ||
Simply copy the appropriate* `docker-compose.PLATFORM.yml` file into | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Which one is appropriate? If I'm running Mac or Windows, do I choose darwin or linux? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Darwin is Mac and linux for Linux but there doesn't seem to be an example for windows. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Indeed. I don't think most new Mac users know they're on "Darwin" so I'll add a comment to that effect. |
||
`docker-compose.override.yml`, on your development machine. | ||
|
||
Any additional changes that are for your local / development environment can | ||
then be added to `docker-compose.override.yml`. | ||
then be added to `docker-compose.override.yml`. Because they're not tracked... | ||
rosiel marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Building | ||
|
||
You can build your locally using `docker compose` | ||
You can build your development environment locally using `docker compose` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What does "build" mean since there are so many steps after this? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I take it that "build" actually means "run the |
||
|
||
```bash | ||
docker compose --profile dev build | ||
``` | ||
This has the effect of... | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (put here as a placeholder, that this section should at some level explain what building is since you haven't even pulled images yet, I can't imagine what's being built.) |
||
|
||
## Pulling | ||
## Pulling Docker Images | ||
|
||
The `docker compose` file provided require that you first pull the islandora | ||
The `docker compose` file provided requires that you first pull the islandora | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "first" implies... before building (previous step)? Before the next step? If that's the case why not just state this as the next step? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Before anything can happen within a container you must download that image to build the container with. It sounds like this is the intent. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is implied that this requirement is a quirk of our particular There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's also after the 'build' step which confuses me. |
||
images with the following command: | ||
|
||
```bash | ||
docker compose --profile dev --profile prod pull --ignore-buildable --ignore-pull-failures | ||
``` | ||
|
||
Both `dev` and `prod` are included so that... | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, confused by this. |
||
|
||
## Running / Stoping / Destroying | ||
|
||
You must specify a profile either `dev` or `prod` to use `docker compose` files | ||
provided by this repository. | ||
You must specify a profile - either `dev` or `prod` - to use the `docker compose` files | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
provided by this repository. Running/stopping/destroying for each profile is outlined below. | ||
|
||
### Development Profile | ||
|
||
|
@@ -101,9 +104,9 @@ Use the `dev` profile when bring up your local/development environment: | |
docker compose --profile dev up -d | ||
``` | ||
|
||
You must wait several minutes for the islandora site to install. When completed | ||
you can see the following in the output from the `drupal-dev` container, with | ||
the following command: | ||
After all containers are "Started", you must wait several minutes for the Islandora | ||
site to install. When completed, you can see the following in the output from the | ||
`drupal-dev` container, with the following command: | ||
|
||
```bash | ||
docker compose logs -f drupal-dev | ||
|
@@ -115,16 +118,16 @@ docker compose logs -f drupal-dev | |
##################### | ||
``` | ||
|
||
For all accounts in the development profile the username and password is set to | ||
For all accounts in the development profile the username and password are set to | ||
the following: | ||
|
||
| Credentials | Value | | ||
| :---------- | :------- | | ||
| Username | admin | | ||
| Password | password | | ||
|
||
If you have the domain in your `.env` set to `islandora.dev` you can access all | ||
the services at the following URLs. | ||
If you have the domain in your `.env` set to `islandora.dev` (default), you can | ||
access all the services at the following URLs. | ||
|
||
| Service | URL | | ||
| :--------- | :---------------------------------------- | | ||
|
@@ -173,7 +176,7 @@ To **destroy all data** from your production environment: | |
docker compose --profile prod down -v | ||
``` | ||
|
||
## Pushing | ||
## Pushing Docker Images | ||
|
||
Pushing requires setting up either a [Local Registry](#local-registry), or a | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is pushing docker images? When would you want to do it? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Docker's cli pushes images to the repository. Pushing a forked Docker image to your own repository can serve several purposes:
Overall, pushing a forked Docker image to your own repository gives you control, flexibility, and the ability to customize and manage the image according to your specific requirements. It ensures that you have a stable and version-controlled source for the image, independent of the original repository. Welcome to use any or all of this if you'd like. |
||
[Remote Registry](#remote-registry). Though you may want to use both concurrently. | ||
|
@@ -355,7 +358,11 @@ mkcert \ | |
|
||
## Upgrading Isle Docker Images | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is ambiguous and could mean:
|
||
|
||
Edit [.env] and replace the following line, with your new targeted version: | ||
First, read the **release notes** for the versions between your current version | ||
and your target version, as manual steps beyond what is listed here will likely | ||
be required. | ||
|
||
Edit [.env] and replace the following line with the desired new version tag: | ||
|
||
```bash | ||
# The version of the isle-buildkit images to use. | ||
|
@@ -364,18 +371,14 @@ ISLANDORA_TAG=x.x.x | |
|
||
Then you can [pull](#pulling) the latest images as described previously. | ||
|
||
Then read the **release notes** for the versions between your current version | ||
and your target version, as manual steps beyond what is listed here will likely | ||
be required. | ||
|
||
Of course **make backups** before deploying to production and test thoroughly. | ||
|
||
## Drupal Development | ||
|
||
For local development via the [development profile], an [IDE] is provided which | ||
can also support the use of [PHPStorm]. | ||
can also support (how?) the use of [PHPStorm]. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What does it mean for a built-in IDE to "support" phpstorm? Where are the instructions to make the built-in IDE work with phpstorm? Or is it the bind-mounted codebase-ish directories which support the use of phpstorm? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I "think" it supports the use of phpstrom. |
||
|
||
There are a number of bind mounted directories so changes made in the following | ||
There are a number of bind mounted directories and changes made in the following | ||
files & folders will persist in this Git repository. | ||
|
||
- /var/www/drupal/assets | ||
|
@@ -386,8 +389,8 @@ files & folders will persist in this Git repository. | |
- /var/www/drupal/web/themes/custom | ||
|
||
Other changes such as to the `vendor` folder or installed modules are **not** | ||
persisted, to disk. This is by design as these changes should be managed via | ||
`composer` and baked into the Drupal Docker image. | ||
persisted in Git. This is by design as these changes should be managed via | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure if you meant for real that changes are not persisted to disk. Based on what little i know of Docker, it's possible that changes are ephemeral and live in the container, not on a volume, so your statement would be accurate. But I don't think that's what your'e going for. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it's a safe assumption that any manual changes to the vendor/ directory is a bad idea and should be looked at as volatile because running a composer command will wipe out those changes or could be dropped by a build process. |
||
`composer` and baked into the Drupal Docker image for production. | ||
|
||
Changes made to `composer.json` and `composer.lock` will require you to rebuild | ||
the Drupal Docker image, see [building](#building) for how. | ||
|
@@ -400,13 +403,13 @@ the Drupal Docker image, see [building](#building) for how. | |
# Production | ||
|
||
Running in production makes use of the [production profile], which requires | ||
either manually provided secrets, or generating secrets. As well as a properly | ||
configured DNS records as is described in the following sections. | ||
either manually provided secrets, or generating secrets. It also requires a | ||
properly configured DNS record as described in the following sections. | ||
|
||
## Generate secrets | ||
|
||
To be able to run the production profile of the [docker-compose.yml] file the | ||
referenced secrets and JWT public/private key pair must be created. There is | ||
referenced secrets and JWT public/private key pair must be created. There are | ||
inline instructions for generating each secret in [docker-compose.yml]. | ||
|
||
Alternatively you can use the [generate-secrets.sh] `bash` script to generate | ||
|
@@ -417,7 +420,7 @@ them all quickly. | |
|
||
## Production Domain | ||
|
||
The [.env] has a variable `DOMAIN` which should be set to the production sites | ||
The [.env] has a variable `DOMAIN` which should be set to the production site's | ||
domain. | ||
|
||
```bash | ||
|
@@ -499,4 +502,4 @@ sudo chcon -R -t container_file_t secrets/* | |
[lets-encrypt]: https://letsencrypt.org/ | ||
[mkcert]: https://github.com/FiloSottile/mkcert | ||
[PHPStorm]: https://github.com/Islandora-Devops/isle-buildkit#phpstorm | ||
[production profile]: #production-profile | ||
[production profile]: #production-profile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this accurate? I feel quite silly going through all this "institution" stuff to spin up a temporary dev sandbox.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess, rather, is it "recommended" that a git repo and remote be created for development projects? What changes might get saved here?