Merge pull request #52 from ckan/ckan-cleanup
Update setup/ directory files in CKAN container
This commit is contained in:
commit
cf4eef6111
|
@ -209,3 +209,4 @@ if __name__ == "__main__":
|
|||
init_datastore_db()
|
||||
check_solr_connection()
|
||||
create_sysadmin()
|
||||
|
|
@ -1,8 +1,26 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
# Add ckan.datapusher.api_token to the CKAN config file (updated with corrected value later)
|
||||
ckan config-tool $CKAN_INI ckan.datapusher.api_token=xxx
|
||||
|
||||
# Set up the Secret key used by Beaker and Flask
|
||||
# This can be overriden using a CKAN___BEAKER__SESSION__SECRET env var
|
||||
if grep -E "beaker.session.secret ?= ?$" ckan.ini
|
||||
then
|
||||
echo "Setting beaker.session.secret in ini file"
|
||||
ckan config-tool $CKAN_INI "beaker.session.secret=$(python3 -c 'import secrets; print(secrets.token_urlsafe())')"
|
||||
ckan config-tool $CKAN_INI "WTF_CSRF_SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe())')"
|
||||
JWT_SECRET=$(python3 -c 'import secrets; print("string:" + secrets.token_urlsafe())')
|
||||
ckan config-tool $CKAN_INI "api_token.jwt.encode.secret=${JWT_SECRET}"
|
||||
ckan config-tool $CKAN_INI "api_token.jwt.decode.secret=${JWT_SECRET}"
|
||||
fi
|
||||
|
||||
# Run the prerun script to init CKAN and create the default admin user
|
||||
sudo -u ckan -EH python3 prerun.py
|
||||
|
||||
echo "Set up ckan.datapusher.api_token in the CKAN config file"
|
||||
ckan config-tool $CKAN_INI "ckan.datapusher.api_token=$(ckan -c $CKAN_INI user token add ckan_admin datapusher | tail -n 1 | tr -d '\t')"
|
||||
|
||||
# Run any startup scripts provided by images extending this one
|
||||
if [[ -d "/docker-entrypoint.d" ]]
|
||||
then
|
|
@ -0,0 +1,99 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Install any local extensions in the src_extensions volume
|
||||
echo "Looking for local extensions to install..."
|
||||
echo "Extension dir contents:"
|
||||
ls -la $SRC_EXTENSIONS_DIR
|
||||
for i in $SRC_EXTENSIONS_DIR/*
|
||||
do
|
||||
if [ -d $i ];
|
||||
then
|
||||
|
||||
if [ -f $i/pip-requirements.txt ];
|
||||
then
|
||||
pip install -r $i/pip-requirements.txt
|
||||
echo "Found requirements file in $i"
|
||||
fi
|
||||
if [ -f $i/requirements.txt ];
|
||||
then
|
||||
pip install -r $i/requirements.txt
|
||||
echo "Found requirements file in $i"
|
||||
fi
|
||||
if [ -f $i/dev-requirements.txt ];
|
||||
then
|
||||
pip install -r $i/dev-requirements.txt
|
||||
echo "Found dev-requirements file in $i"
|
||||
fi
|
||||
if [ -f $i/setup.py ];
|
||||
then
|
||||
cd $i
|
||||
python3 $i/setup.py develop
|
||||
echo "Found setup.py file in $i"
|
||||
cd $APP_DIR
|
||||
fi
|
||||
|
||||
# Point `use` in test.ini to location of `test-core.ini`
|
||||
if [ -f $i/test.ini ];
|
||||
then
|
||||
echo "Updating \`test.ini\` reference to \`test-core.ini\` for plugin $i"
|
||||
ckan config-tool $i/test.ini "use = config:../../src/ckan/test-core.ini"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Set debug to true
|
||||
echo "Enabling debug mode"
|
||||
ckan config-tool $CKAN_INI -s DEFAULT "debug = true"
|
||||
|
||||
# Add ckan.datapusher.api_token to the CKAN config file (updated with corrected value later)
|
||||
ckan config-tool $CKAN_INI ckan.datapusher.api_token=xxx
|
||||
|
||||
# Set up the Secret key used by Beaker and Flask
|
||||
# This can be overriden using a CKAN___BEAKER__SESSION__SECRET env var
|
||||
if grep -E "beaker.session.secret ?= ?$" ckan.ini
|
||||
then
|
||||
echo "Setting beaker.session.secret in ini file"
|
||||
ckan config-tool $CKAN_INI "beaker.session.secret=$(python3 -c 'import secrets; print(secrets.token_urlsafe())')"
|
||||
ckan config-tool $CKAN_INI "WTF_CSRF_SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe())')"
|
||||
JWT_SECRET=$(python3 -c 'import secrets; print("string:" + secrets.token_urlsafe())')
|
||||
ckan config-tool $CKAN_INI "api_token.jwt.encode.secret=${JWT_SECRET}"
|
||||
ckan config-tool $CKAN_INI "api_token.jwt.decode.secret=${JWT_SECRET}"
|
||||
fi
|
||||
|
||||
# Update the plugins setting in the ini file with the values defined in the env var
|
||||
echo "Loading the following plugins: $CKAN__PLUGINS"
|
||||
ckan config-tool $CKAN_INI "ckan.plugins = $CKAN__PLUGINS"
|
||||
|
||||
# Update test-core.ini DB, SOLR & Redis settings
|
||||
echo "Loading test settings into test-core.ini"
|
||||
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"
|
||||
|
||||
# Run the prerun script to init CKAN and create the default admin user
|
||||
sudo -u ckan -EH python3 prerun.py
|
||||
|
||||
echo "Set up ckan.datapusher.api_token in the CKAN config file"
|
||||
ckan config-tool $CKAN_INI "ckan.datapusher.api_token=$(ckan -c $CKAN_INI user token add ckan_admin datapusher | tail -n 1 | tr -d '\t')"
|
||||
|
||||
# Run any startup scripts provided by images extending this one
|
||||
if [[ -d "/docker-entrypoint.d" ]]
|
||||
then
|
||||
for f in /docker-entrypoint.d/*; do
|
||||
case "$f" in
|
||||
*.sh) echo "$0: Running init file $f"; . "$f" ;;
|
||||
*.py) echo "$0: Running init file $f"; python3 "$f"; echo ;;
|
||||
*) echo "$0: Ignoring $f (not an sh or py file)" ;;
|
||||
esac
|
||||
echo
|
||||
done
|
||||
fi
|
||||
|
||||
# Start supervisord
|
||||
supervisord --configuration /etc/supervisord.conf &
|
||||
|
||||
# Start the development server with automatic reload
|
||||
sudo -u ckan -EH ckan -c $CKAN_INI run -H 0.0.0.0
|
|
@ -1,23 +0,0 @@
|
|||
[unix_http_server]
|
||||
file = /tmp/supervisor.sock
|
||||
chmod = 0777
|
||||
chown = nobody:nogroup
|
||||
|
||||
[supervisord]
|
||||
logfile = /tmp/supervisord.log
|
||||
logfile_maxbytes = 50MB
|
||||
logfile_backups=10
|
||||
loglevel = info
|
||||
pidfile = /tmp/supervisord.pid
|
||||
nodaemon = true
|
||||
umask = 022
|
||||
identifier = supervisor
|
||||
|
||||
[supervisorctl]
|
||||
serverurl = unix:///tmp/supervisor.sock
|
||||
|
||||
[rpcinterface:supervisor]
|
||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||
|
||||
[include]
|
||||
files = /etc/supervisord.d/*.conf
|
|
@ -1,2 +0,0 @@
|
|||
[uwsgi]
|
||||
route = ^(?!/api).*$ basicauth:Restricted,/srv/app/.htpasswd
|
Loading…
Reference in New Issue