Skip to content

Commit

Permalink
#4644 First go at getting tests to run in docker-compose
Browse files Browse the repository at this point in the history
  • Loading branch information
David Read committed Feb 10, 2019
1 parent 689c488 commit eb0f9af
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 2 deletions.
9 changes: 9 additions & 0 deletions Dockerfile
Expand Up @@ -32,6 +32,7 @@ ENV CKAN_STORAGE_PATH=/var/lib/ckan

# Build-time variables specified by docker-compose.yml / .env
ARG CKAN_SITE_URL
ARG DEVELOPER_SETUP=false

# Create ckan user
RUN useradd -r -u 900 -m -c "ckan account" -d $CKAN_HOME -s /bin/false ckan
Expand All @@ -53,6 +54,14 @@ RUN ckan-pip install -U pip && \
chmod +x /ckan-entrypoint.sh && \
chown -R ckan:ckan $CKAN_HOME $CKAN_VENV $CKAN_CONFIG $CKAN_STORAGE_PATH

RUN if [ "$DEVELOPER_SETUP" = true ] ; then \
ckan-pip install --upgrade --no-cache-dir -r $CKAN_VENV/src/ckan/requirements.txt; \
fi
RUN if [ "$DEVELOPER_SETUP" = true ] ; then \
cp -v $CKAN_VENV/src/ckan/contrib/docker/ckan-tests-entrypoint.sh /ckan-entrypoint.sh; \
chmod +x /ckan-entrypoint.sh; \
fi

ENTRYPOINT ["/ckan-entrypoint.sh"]

USER ckan
Expand Down
6 changes: 6 additions & 0 deletions contrib/docker/ckan-tests-entrypoint.sh
@@ -0,0 +1,6 @@
#!/bin/sh
set -e

# set_environment
# ckan-paster --plugin=ckan db init -c "${CKAN_CONFIG}/production.ini"
# exec "$@"
62 changes: 62 additions & 0 deletions contrib/docker/docker-compose.test.yml
@@ -0,0 +1,62 @@
# docker-compose build && docker-compose up -d
# If "docker-compose logs ckan" shows DB not ready, run "docker-compose restart ckan" a few times.
version: "3"

volumes:
ckan_config:
ckan_home:
ckan_storage:
pg_data:

services:
ckan:
container_name: ckan
build:
context: ../../
args:
- CKAN_SITE_URL=ignored in tests
- DEVELOPER_SETUP=true
links:
- db
- solr
- redis
volumes:
- ckan_config:/etc/ckan
- ckan_home:/usr/lib/ckan
- ckan_storage:/var/lib/ckan
command:
- nosetests --ckan --with-pylons=test-core.ini ckan ckanext

datapusher:
container_name: datapusher
image: clementmouchet/datapusher
ports:
- "8800:8800"

db:
container_name: db
build:
context: ../../
dockerfile: contrib/docker/postgresql/Dockerfile
args:
# match the creds hard-coded in test-core.ini
- POSTGRES_DB=ckan_test
- POSTGRES_USER=ckan_default
- DS_RO_PASS=pass
- POSTGRES_PASSWORD=pass
environment:
- DS_RO_PASS=pass
- POSTGRES_PASSWORD=pass
volumes:
- pg_data:/var/lib/postgresql/data

solr:
container_name: solr
build:
context: ../../
dockerfile: contrib/docker/solr/Dockerfile


redis:
container_name: redis
image: redis:latest
4 changes: 2 additions & 2 deletions contrib/docker/postgresql/Dockerfile
Expand Up @@ -6,8 +6,8 @@ MAINTAINER Open Knowledge
RUN echo "host all all 0.0.0.0/0 md5" >> /var/lib/postgresql/data/pg_hba.conf

# Customize default user/pass/db
ENV POSTGRES_DB ckan
ENV POSTGRES_USER ckan
ARG POSTGRES_DB=ckan
ARG POSTGRES_USER=ckan
ARG POSTGRES_PASSWORD
ARG DS_RO_PASS

Expand Down

0 comments on commit eb0f9af

Please sign in to comment.