67 lines
2.8 KiB
Plaintext
67 lines
2.8 KiB
Plaintext
### Please note that this re-purposed CKAN Docker repo is a WORK IN PROGRESS ###
|
|
### It should not be used to install CKAN via Docker until this page is updated ###
|
|
|
|
-------------------------------------
|
|
(From Adria)
|
|
Be limited in scope, and act as a base that users can extend to their own needs
|
|
Be opinionated, and provide one way to do things
|
|
Be automatically tested
|
|
-------------------------------------
|
|
|
|
should we have an nginx container included? maybe just instructions on how to include one
|
|
|
|
ARG should be used for sensitive variables so as to keep the values of these variables
|
|
out of the build and hence will not show with an "inspect image" command
|
|
|
|
Do we pre-build a CKAN image and use that (and extend) as the base image OR
|
|
just build it from scratch and while saving to storage what we need to
|
|
|
|
To use local storage for the ckan.ini file and the CKAN src code, do the following:
|
|
|
|
# docker-compose up -d --build
|
|
# mkdir local
|
|
# docker cp ckan:/srv/app/ckan.ini ./local/ckan.ini
|
|
# docker cp ckan:/srv/app/src ./local/src
|
|
Stop/Remove ckan container
|
|
Start ckan container as follows
|
|
Use a bind mount for the config file (ckan.ini)
|
|
# docker run -p 0.0.0.0:5000:5000 --net ckan-docker_default --hostname ckan --name ckan \
|
|
--env-file=./environ --mount type=bind,source=$(pwd)/local/ckan.ini,target=/srv/app/ckan.ini \
|
|
--mount type=bind,source=$(pwd)/local/src,target=/srv/app/src \
|
|
-d ckan-docker_ckan
|
|
|
|
Maybe include a script to replace docker-compose if required
|
|
|
|
Dev Mode (OKFN)
|
|
|
|
The differences between Docker dev abd Docker base is as the following:
|
|
|
|
docker-compose.dev.yml
|
|
solr: explicitly puts in ports (8983:8983)
|
|
db: Doesn't pass in environment and arg values
|
|
ckan: has extra volume bind mount (./src:/srv/app/src_extensions)
|
|
|
|
Dockerfile.dev
|
|
Takes the base image and
|
|
Adds a new directory (SRC_EXTENSIONS_DIR=/srv/app/src_extensions)
|
|
installs libffi-dev
|
|
installs dev-requirements.txt
|
|
runs different start script (start_ckan_development.sh) which installs any extension located in SRC_EXTENSIONS_DIR
|
|
runs a typical Dev install
|
|
pip install -r pip-requirements.txt
|
|
pip install -r requirements.txt
|
|
pip install -r dev-requirements.txt
|
|
python3 setup.py develop
|
|
ckan config-tool test.ini
|
|
ckan config-tool $CKAN_INI -s DEFAULT "debug = true"
|
|
ckan config-tool $CKAN_INI "ckan.plugins = $CKAN__PLUGINS"
|
|
ckan config-tool $SRC_DIR/ckan/test-core.ini \
|
|
"sqlalchemy.url = $TEST_CKAN_SQLALCHEMY_URL" \
|
|
"ckan.datastore.write_url = $TEST_CKAN_DATASTORE_WRITE_URL" \
|
|
"ckan.datastore.read_url = $TEST_CKAN_DATASTORE_READ_URL" \
|
|
"solr_url = $TEST_CKAN_SOLR_URL" \
|
|
"ckan.redis.url = $TEST_CKAN_REDIS_URL"
|
|
|
|
All other steps are similar to the base Dockerfile
|
|
|