commands for working with dev

This commit is contained in:
Ian Ward 2024-12-16 14:51:52 -05:00
parent 31e39c8806
commit faa3234773
7 changed files with 49 additions and 10 deletions

View File

@ -96,19 +96,19 @@ After this step, CKAN should be running at `CKAN_SITE_URL` (by default https://l
Use this mode if you are making code changes to CKAN and either creating new extensions or making code changes to existing extensions. This mode also uses the `.env` file for config options. Use this mode if you are making code changes to CKAN and either creating new extensions or making code changes to existing extensions. This mode also uses the `.env` file for config options.
To develop local extensions use the `docker-compose.dev.yml` file: To develop local extensions use the `docker-compose.dev.yml` file with help from the scripts under `bin`:
To build the images: To build the images:
docker compose -f docker-compose.dev.yml build bin/compose build
To install extensions from the `src` directory: To install extensions from the `src` directory:
docker compose -f docker-compose.dev.yml run -u root ckan-dev ./install_src.sh bin/install_src
To start the containers: To start the containers:
docker compose -f docker-compose.dev.yml up bin/compose up
See [CKAN images](#5-ckan-images) for more details of what happens when using development mode. See [CKAN images](#5-ckan-images) for more details of what happens when using development mode.
@ -117,9 +117,7 @@ See [CKAN images](#5-ckan-images) for more details of what happens when using de
You can use the ckan [extension](https://docs.ckan.org/en/latest/extensions/tutorial.html#creating-a-new-extension) instructions to create a CKAN extension, only executing the command inside the CKAN container and setting the mounted `src/` folder as output: You can use the ckan [extension](https://docs.ckan.org/en/latest/extensions/tutorial.html#creating-a-new-extension) instructions to create a CKAN extension, only executing the command inside the CKAN container and setting the mounted `src/` folder as output:
```bash bin/generate_extension
docker compose -f docker-compose.dev.yml exec -u `stat -c '%u' src` -e HOME=/srv/app/src_extensions ckan-dev ckan generate extension --output-dir /srv/app/src_extensions
```
``` ```
Extension's name [must begin 'ckanext-']: ckanext-mytheme Extension's name [must begin 'ckanext-']: ckanext-mytheme
@ -135,8 +133,6 @@ Written: /srv/app/src_extensions/ckanext-mytheme
The new extension files and directories are created in the `/srv/app/src_extensions/` folder in the running container. They will also exist in the local src/ directory as local `/src` directory is mounted as `/srv/app/src_extensions/` on the ckan container. The new extension files and directories are created in the `/srv/app/src_extensions/` folder in the running container. They will also exist in the local src/ directory as local `/src` directory is mounted as `/srv/app/src_extensions/` on the ckan container.
Please note that you will need to change the stat command to `stat -f '%u' src` on Mac OS rather than `stat -c '%u' src` which is specific to GNU stat (ie: Linux)
#### Running HTTPS on development mode #### Running HTTPS on development mode
@ -167,7 +163,7 @@ development instance in your `.env` file:
Next run the install script to install debugpy: Next run the install script to install debugpy:
docker compose -f docker-compose.dev.yml run -u root ckan-dev ./install_src.sh bin/install_src
Then start the containers in [development mode](#development-mode) and launch VS Code. Then start the containers in [development mode](#development-mode) and launch VS Code.

6
bin/ckan Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
docker compose -f "${ROOT}/docker-compose.dev.yml" exec ckan-dev ckan "$@"

6
bin/compose Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
docker compose -f "${ROOT}/docker-compose.dev.yml" "$@"

13
bin/generate_extension Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
USERGROUP="$(stat -c '%u:%g' "${ROOT}/src")"
if [ "$USERGROUP" == ":" ]; then
# macos stat?
USERGROUP="$(stat -f '%u:%g' "${ROOT}/src")"
fi
docker compose -f "${ROOT}/docker-compose.dev.yml" exec -u "$USERGROUP" \
-e HOME=/srv/app/src_extensions ckan-dev ckan generate extension \
--output-dir /srv/app/src_extensions

6
bin/install_src Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
docker compose -f "${ROOT}/docker-compose.dev.yml" run -u root ckan-dev ./install_src.sh

6
bin/restart Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
docker compose -f "${ROOT}/docker-compose.dev.yml" restart ckan-dev

6
bin/shell Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
ROOT="$(dirname ${BASH_SOURCE[0]})/.."
docker compose -f "${ROOT}/docker-compose.dev.yml" exec ckan-dev bash "$@"