Go to file
Brett 28f6901238 Update README.txt 2022-06-01 09:56:25 +02:00
.github/workflows Update build.yml 2021-05-13 16:43:01 +02:00
ckan More updates 2021-05-13 16:42:11 +02:00
datapusher More updates 2021-05-10 15:21:02 +02:00
images Consolidate the COPY commands 2022-02-18 14:23:08 +01:00
local More bind mounts 2022-01-07 15:16:52 +01:00
nginx update nginx Dockerfile 2021-12-09 14:44:35 +01:00
postgresql Dockerfile changes etc 2021-01-15 16:05:22 +01:00
solr Update solr 2021-12-10 11:43:04 +01:00
.env update spaces in env file 2021-12-10 15:01:16 +01:00
.env.template update spaces in env file 2021-12-10 15:01:16 +01:00
.gitignore Update .gitignore 2022-01-07 15:20:06 +01:00
README.txt Update README.txt 2022-06-01 09:56:25 +02:00
dev-requirements.txt More updates 2020-09-17 14:10:25 +02:00
docker-compose.dev.yml More commits 2021-05-21 13:27:42 +02:00
docker-compose.yml update spaces in env file 2021-12-10 15:01:16 +01:00
environ More README updates, environ file, local ckan.ini file 2022-01-05 14:30:19 +01:00
not-compose.sh more changes 2021-12-16 13:59:49 +01:00
pruneall.sh Create pruneall.sh 2021-12-10 14:42:47 +01:00

README.txt

### 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