diff --git a/.env b/.env new file mode 100644 index 0000000..65ba510 --- /dev/null +++ b/.env @@ -0,0 +1,20 @@ +XNAT_VER=1.7.6 +SMTP_ENABLED=false +SMTP_HOSTNAME=fake.fake +SMTP_PORT= +SMTP_AUTH= +SMTP_USERNAME= +SMTP_PASSWORD= +XNAT_DATASOURCE_ADMIN_PASSWORD=xnat123456789abcdef0 +XNAT_DATASOURCE_DRIVER=org.postgresql.Driver +XNAT_DATASOURCE_USERNAME=xnat +XNAT_DATASOURCE_PASSWORD=xnat +XNAT_DATASOURCE_URL=jdbc:postgresql://xnat-db/xnat +XNAT_HIBERNATE_DIALECT=org.hibernate.dialect.PostgreSQL9Dialect +XNAT_ACTIVEMQ_URL=tcp://xnat-activemq:61616 +XNAT_ACTIVEMQ_USERNAME=write +XNAT_ACTIVEMQ_PASSWORD=password +TOMCAT_XNAT_FOLDER=ROOT +XNAT_ROOT=/data/xnat +XNAT_HOME=/data/xnat/home +XNAT_EMAIL=harmitage@miskatonic.edu diff --git a/.gitignore b/.gitignore index 71967a7..b251648 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Created by .ignore support plugin (hsz.mobi) *.swp *.swo -postgres-data* -xnat-data* +*-data/ xnat/plugins +*.log +.gradle/ +manifest.json diff --git a/docker-compose.yml b/docker-compose.yml index d5162af..b1bb533 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,17 +4,17 @@ services: build: context: ./xnat args: - XNAT_VER: '1.7.6' - XNAT_DATASOURCE_DRIVER: 'org.postgresql.Driver' - XNAT_DATASOURCE_URL: 'jdbc:postgresql://xnat-db/xnat' - XNAT_DATASOURCE_USERNAME: 'xnat' - XNAT_DATASOURCE_PASSWORD: 'xnat' - XNAT_HIBERNATE_DIALECT: 'org.hibernate.dialect.PostgreSQL9Dialect' - TOMCAT_XNAT_FOLDER: ROOT - XNAT_ROOT: /data/xnat - XNAT_HOME: /data/xnat/home + XNAT_VER: ${XNAT_VER} + XNAT_DATASOURCE_DRIVER: ${XNAT_DATASOURCE_DRIVER} + XNAT_DATASOURCE_URL: ${XNAT_DATASOURCE_URL} + XNAT_DATASOURCE_USERNAME: ${XNAT_DATASOURCE_USERNAME} + XNAT_DATASOURCE_PASSWORD: ${XNAT_DATASOURCE_PASSWORD} + XNAT_HIBERNATE_DIALECT: ${XNAT_HIBERNATE_DIALECT} + TOMCAT_XNAT_FOLDER: ${TOMCAT_XNAT_FOLDER} + XNAT_ROOT: ${XNAT_ROOT} + XNAT_HOME: ${XNAT_HOME} ports: - - "8081:8080" + - "8080:8080" - "8000:8000" volumes: - ./xnat/plugins:/data/xnat/home/plugins @@ -34,6 +34,8 @@ services: - "5432" volumes: - ./postgres-data:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: ${XNAT_DATASOURCE_ADMIN_PASSWORD} xnat-nginx: build: ./nginx diff --git a/postgres/XNAT.sql b/postgres/XNAT.sql index 43369e3..7f0401c 100644 --- a/postgres/XNAT.sql +++ b/postgres/XNAT.sql @@ -1,3 +1,3 @@ -CREATE USER xnat NOCREATEDB; +CREATE USER xnat NOCREATEDB; CREATE DATABASE xnat OWNER xnat; ALTER USER xnat WITH PASSWORD 'xnat'; diff --git a/xnat/Dockerfile b/xnat/Dockerfile index 19977bd..d57fe71 100644 --- a/xnat/Dockerfile +++ b/xnat/Dockerfile @@ -1,7 +1,7 @@ FROM tomcat:7-jre8-alpine MAINTAINER Matt Kelsey -ARG XNAT_VER +ARG XNAT_VER=1.7.6 ARG XNAT_ROOT=/data/xnat ARG XNAT_HOME=/data/xnat/home ARG XNAT_DATASOURCE_DRIVER=org.postgresql.Driver @@ -10,17 +10,15 @@ ARG XNAT_DATASOURCE_USERNAME=xnat ARG XNAT_DATASOURCE_PASSWORD=xnat ARG XNAT_HIBERNATE_DIALECT=org.hibernate.dialect.PostgreSQL9Dialect ARG TOMCAT_XNAT_FOLDER=ROOT +ARG TOMCAT_XNAT_FOLDER_PATH=${CATALINA_HOME}/webapps/${TOMCAT_XNAT_FOLDER} ADD make-xnat-config.sh /usr/local/bin/make-xnat-config.sh ADD wait-for-postgres.sh /usr/local/bin/wait-for-postgres.sh -RUN apk add --no-cache \ - postgresql-client \ - wget \ - && \ - rm -rf $CATALINA_HOME/webapps/* && \ - mkdir -p \ - $CATALINA_HOME/webapps/${TOMCAT_XNAT_FOLDER} \ +RUN apk add --no-cache postgresql-client wget +RUN rm -rf ${CATALINA_HOME}/webapps/* +RUN mkdir -p \ + ${TOMCAT_XNAT_FOLDER_PATH} \ ${XNAT_HOME}/config \ ${XNAT_HOME}/logs \ ${XNAT_HOME}/plugins \ @@ -30,18 +28,17 @@ RUN apk add --no-cache \ ${XNAT_ROOT}/cache \ ${XNAT_ROOT}/ftp \ ${XNAT_ROOT}/pipeline \ - ${XNAT_ROOT}/prearchive \ - && \ - /usr/local/bin/make-xnat-config.sh && \ - rm /usr/local/bin/make-xnat-config.sh && \ - cd $CATALINA_HOME/webapps/ && \ - wget https://api.bitbucket.org/2.0/repositories/xnatdev/xnat-web/downloads/xnat-web-${XNAT_VER}.war && \ - cd ${TOMCAT_XNAT_FOLDER} && \ - unzip -o ../xnat-web-${XNAT_VER}.war && \ - rm -f ../xnat-web-${XNAT_VER}.war && \ - apk del wget + ${XNAT_ROOT}/prearchive +RUN /usr/local/bin/make-xnat-config.sh +RUN rm /usr/local/bin/make-xnat-config.sh +RUN wget --no-verbose --output-document=/tmp/xnat-web-${XNAT_VER}.war https://api.bitbucket.org/2.0/repositories/xnatdev/xnat-web/downloads/xnat-web-${XNAT_VER}.war +RUN unzip -o -d ${TOMCAT_XNAT_FOLDER_PATH} /tmp/xnat-web-${XNAT_VER}.war +RUN rm -f /tmp/xnat-web-${XNAT_VER}.war +RUN apk del wget EXPOSE 8080 -ENV XNAT_HOME=${XNAT_HOME} XNAT_DATASOURCE_USERNAME=${XNAT_DATASOURCE_USERNAME} + +ENV XNAT_HOME=${XNAT_HOME} XNAT_DATASOURCE_USERNAME=${XNAT_DATASOURCE_USERNAME} PGPASSWORD=${XNAT_DATASOURCE_PASSWORD} CMD ["wait-for-postgres.sh", "/usr/local/tomcat/bin/catalina.sh", "run"] +