├── .gitignore ├── sample-provider.env ├── LICENSE ├── 4.2.0 ├── Dockerfile └── docker-entrypoint.sh ├── 4.2.1 ├── Dockerfile └── docker-entrypoint.sh ├── 4.2.2 ├── Dockerfile └── docker-entrypoint.sh ├── 4.2.3 ├── Dockerfile └── docker-entrypoint.sh ├── 4.2.4 ├── Dockerfile └── docker-entrypoint.sh ├── 4.1.8 ├── Dockerfile └── docker-entrypoint.sh ├── 4.1.9 ├── Dockerfile └── docker-entrypoint.sh ├── 4.1.10 ├── Dockerfile └── docker-entrypoint.sh ├── 4.1.11 ├── Dockerfile └── docker-entrypoint.sh ├── 4.1.12 ├── Dockerfile └── docker-entrypoint.sh ├── README.md └── example-output └── example-output-4.2.2.md /.gitignore: -------------------------------------------------------------------------------- 1 | 4.2.2/etc_irods/ 2 | 4.2.2/var_irods/ 3 | 4.2.2/var_pgdata/ 4 | -------------------------------------------------------------------------------- /sample-provider.env: -------------------------------------------------------------------------------- 1 | IRODS_SERVICE_ACCOUNT_NAME=irods 2 | IRODS_SERVICE_ACCOUNT_GROUP=irods 3 | IRODS_SERVER_ROLE=1 4 | ODBC_DRIVER_FOR_POSTGRES=2 5 | IRODS_DATABASE_SERVER_HOSTNAME=localhost 6 | IRODS_DATABASE_SERVER_PORT=5432 7 | IRODS_DATABASE_NAME=ICAT 8 | IRODS_DATABASE_USER_NAME=irods 9 | IRODS_DATABASE_PASSWORD=temppassword 10 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt 11 | IRODS_ZONE_NAME=tempZone 12 | IRODS_PORT=1247 13 | IRODS_PORT_RANGE_BEGIN=20000 14 | IRODS_PORT_RANGE_END=20199 15 | IRODS_CONTROL_PLANE_PORT=1248 16 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas 17 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods 18 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key 19 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key 20 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key 21 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods 22 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault 23 | UID_POSTGRES=999 24 | GID_POSTGRES=999 25 | UID_IRODS=998 26 | GID_IRODS=998 27 | POSTGRES_USER=postgres 28 | POSTGRES_PASSWORD=postgres 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Michael J. Stealey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /4.2.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.2.0 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.2.0 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | gnupg2 \ 17 | apt-transport-https \ 18 | sudo \ 19 | jq \ 20 | libxml2 \ 21 | moreutils \ 22 | && wget -qO - https://packages.irods.org/irods-signing-key.asc | apt-key add - \ 23 | && echo "deb [arch=amd64] https://packages.irods.org/apt/ trusty main" \ 24 | > /etc/apt/sources.list.d/renci-irods.list \ 25 | && apt-get update && apt-get install -y \ 26 | irods-database-plugin-postgres=${IRODS_VERSION} \ 27 | irods-icommands=${IRODS_VERSION} \ 28 | irods-runtime=${IRODS_VERSION} \ 29 | irods-server=${IRODS_VERSION} 30 | 31 | # default iRODS and PostgreSQL environment variables 32 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 33 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 34 | IRODS_SERVER_ROLE=1 \ 35 | ODBC_DRIVER_FOR_POSTGRES=2 \ 36 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 37 | IRODS_DATABASE_SERVER_PORT=5432 \ 38 | IRODS_DATABASE_NAME=ICAT \ 39 | IRODS_DATABASE_USER_NAME=irods \ 40 | IRODS_DATABASE_PASSWORD=temppassword \ 41 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt \ 42 | IRODS_ZONE_NAME=tempZone \ 43 | IRODS_PORT=1247 \ 44 | IRODS_PORT_RANGE_BEGIN=20000 \ 45 | IRODS_PORT_RANGE_END=20199 \ 46 | IRODS_CONTROL_PLANE_PORT=1248 \ 47 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas \ 48 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 49 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 50 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 51 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 52 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 53 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 54 | UID_POSTGRES=999 \ 55 | GID_POSTGRES=999 \ 56 | UID_IRODS=998 \ 57 | GID_IRODS=998 \ 58 | POSTGRES_USER=postgres \ 59 | POSTGRES_PASSWORD=postgres 60 | 61 | # create postgresql.tar.gz 62 | RUN cd /var/lib/postgresql/data \ 63 | && tar -czvf /postgresql.tar.gz . \ 64 | && cd / 65 | 66 | # create irods.tar.gz 67 | RUN cd /var/lib/irods \ 68 | && tar -czvf /irods.tar.gz . \ 69 | && cd / 70 | 71 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 72 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 73 | 74 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 75 | 76 | WORKDIR /var/lib/irods/ 77 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 78 | -------------------------------------------------------------------------------- /4.2.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.2.1 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.2.1 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | gnupg2 \ 17 | apt-transport-https \ 18 | sudo \ 19 | jq \ 20 | libxml2 \ 21 | moreutils \ 22 | && wget -qO - https://packages.irods.org/irods-signing-key.asc | apt-key add - \ 23 | && echo "deb [arch=amd64] https://packages.irods.org/apt/ trusty main" \ 24 | > /etc/apt/sources.list.d/renci-irods.list \ 25 | && apt-get update && apt-get install -y \ 26 | irods-database-plugin-postgres=${IRODS_VERSION} \ 27 | irods-icommands=${IRODS_VERSION} \ 28 | irods-runtime=${IRODS_VERSION} \ 29 | irods-server=${IRODS_VERSION} 30 | 31 | # default iRODS and PostgreSQL environment variables 32 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 33 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 34 | IRODS_SERVER_ROLE=1 \ 35 | ODBC_DRIVER_FOR_POSTGRES=2 \ 36 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 37 | IRODS_DATABASE_SERVER_PORT=5432 \ 38 | IRODS_DATABASE_NAME=ICAT \ 39 | IRODS_DATABASE_USER_NAME=irods \ 40 | IRODS_DATABASE_PASSWORD=temppassword \ 41 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt \ 42 | IRODS_ZONE_NAME=tempZone \ 43 | IRODS_PORT=1247 \ 44 | IRODS_PORT_RANGE_BEGIN=20000 \ 45 | IRODS_PORT_RANGE_END=20199 \ 46 | IRODS_CONTROL_PLANE_PORT=1248 \ 47 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas \ 48 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 49 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 50 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 51 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 52 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 53 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 54 | UID_POSTGRES=999 \ 55 | GID_POSTGRES=999 \ 56 | UID_IRODS=998 \ 57 | GID_IRODS=998 \ 58 | POSTGRES_USER=postgres \ 59 | POSTGRES_PASSWORD=postgres 60 | 61 | # create postgresql.tar.gz 62 | RUN cd /var/lib/postgresql/data \ 63 | && tar -czvf /postgresql.tar.gz . \ 64 | && cd / 65 | 66 | # create irods.tar.gz 67 | RUN cd /var/lib/irods \ 68 | && tar -czvf /irods.tar.gz . \ 69 | && cd / 70 | 71 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 72 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 73 | 74 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 75 | 76 | WORKDIR /var/lib/irods/ 77 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 78 | -------------------------------------------------------------------------------- /4.2.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.2.2 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.2.2 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | gnupg2 \ 17 | apt-transport-https \ 18 | sudo \ 19 | jq \ 20 | libxml2 \ 21 | moreutils \ 22 | && wget -qO - https://packages.irods.org/irods-signing-key.asc | apt-key add - \ 23 | && echo "deb [arch=amd64] https://packages.irods.org/apt/ xenial main" \ 24 | > /etc/apt/sources.list.d/renci-irods.list \ 25 | && apt-get update && apt-get install -y \ 26 | irods-database-plugin-postgres=${IRODS_VERSION} \ 27 | irods-icommands=${IRODS_VERSION} \ 28 | irods-runtime=${IRODS_VERSION} \ 29 | irods-server=${IRODS_VERSION} 30 | 31 | # default iRODS and PostgreSQL environment variables 32 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 33 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 34 | IRODS_SERVER_ROLE=1 \ 35 | ODBC_DRIVER_FOR_POSTGRES=2 \ 36 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 37 | IRODS_DATABASE_SERVER_PORT=5432 \ 38 | IRODS_DATABASE_NAME=ICAT \ 39 | IRODS_DATABASE_USER_NAME=irods \ 40 | IRODS_DATABASE_PASSWORD=temppassword \ 41 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt \ 42 | IRODS_ZONE_NAME=tempZone \ 43 | IRODS_PORT=1247 \ 44 | IRODS_PORT_RANGE_BEGIN=20000 \ 45 | IRODS_PORT_RANGE_END=20199 \ 46 | IRODS_CONTROL_PLANE_PORT=1248 \ 47 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas \ 48 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 49 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 50 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 51 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 52 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 53 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 54 | UID_POSTGRES=999 \ 55 | GID_POSTGRES=999 \ 56 | UID_IRODS=998 \ 57 | GID_IRODS=998 \ 58 | POSTGRES_USER=postgres \ 59 | POSTGRES_PASSWORD=postgres 60 | 61 | # create postgresql.tar.gz 62 | RUN cd /var/lib/postgresql/data \ 63 | && tar -czvf /postgresql.tar.gz . \ 64 | && cd / 65 | 66 | # create irods.tar.gz 67 | RUN cd /var/lib/irods \ 68 | && tar -czvf /irods.tar.gz . \ 69 | && cd / 70 | 71 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 72 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 73 | 74 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 75 | 76 | WORKDIR /var/lib/irods/ 77 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 78 | -------------------------------------------------------------------------------- /4.2.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.2.3 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.2.3 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | gnupg2 \ 17 | apt-transport-https \ 18 | sudo \ 19 | jq \ 20 | libxml2 \ 21 | moreutils \ 22 | && wget -qO - https://packages.irods.org/irods-signing-key.asc | apt-key add - \ 23 | && echo "deb [arch=amd64] https://packages.irods.org/apt/ xenial main" \ 24 | > /etc/apt/sources.list.d/renci-irods.list \ 25 | && apt-get update && apt-get install -y \ 26 | irods-database-plugin-postgres=${IRODS_VERSION} \ 27 | irods-icommands=${IRODS_VERSION} \ 28 | irods-runtime=${IRODS_VERSION} \ 29 | irods-server=${IRODS_VERSION} 30 | 31 | # default iRODS and PostgreSQL environment variables 32 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 33 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 34 | IRODS_SERVER_ROLE=1 \ 35 | ODBC_DRIVER_FOR_POSTGRES=2 \ 36 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 37 | IRODS_DATABASE_SERVER_PORT=5432 \ 38 | IRODS_DATABASE_NAME=ICAT \ 39 | IRODS_DATABASE_USER_NAME=irods \ 40 | IRODS_DATABASE_PASSWORD=temppassword \ 41 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt \ 42 | IRODS_ZONE_NAME=tempZone \ 43 | IRODS_PORT=1247 \ 44 | IRODS_PORT_RANGE_BEGIN=20000 \ 45 | IRODS_PORT_RANGE_END=20199 \ 46 | IRODS_CONTROL_PLANE_PORT=1248 \ 47 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas \ 48 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 49 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 50 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 51 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 52 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 53 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 54 | UID_POSTGRES=999 \ 55 | GID_POSTGRES=999 \ 56 | UID_IRODS=998 \ 57 | GID_IRODS=998 \ 58 | POSTGRES_USER=postgres \ 59 | POSTGRES_PASSWORD=postgres 60 | 61 | # create postgresql.tar.gz 62 | RUN cd /var/lib/postgresql/data \ 63 | && tar -czvf /postgresql.tar.gz . \ 64 | && cd / 65 | 66 | # create irods.tar.gz 67 | RUN cd /var/lib/irods \ 68 | && tar -czvf /irods.tar.gz . \ 69 | && cd / 70 | 71 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 72 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 73 | 74 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 75 | 76 | WORKDIR /var/lib/irods/ 77 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 78 | -------------------------------------------------------------------------------- /4.2.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.2.4 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.2.4 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | gnupg2 \ 17 | apt-transport-https \ 18 | sudo \ 19 | jq \ 20 | libxml2 \ 21 | moreutils \ 22 | && wget -qO - https://packages.irods.org/irods-signing-key.asc | apt-key add - \ 23 | && echo "deb [arch=amd64] https://packages.irods.org/apt/ xenial main" \ 24 | > /etc/apt/sources.list.d/renci-irods.list \ 25 | && apt-get update && apt-get install -y \ 26 | irods-database-plugin-postgres=${IRODS_VERSION} \ 27 | irods-icommands=${IRODS_VERSION} \ 28 | irods-runtime=${IRODS_VERSION} \ 29 | irods-server=${IRODS_VERSION} 30 | 31 | # default iRODS and PostgreSQL environment variables 32 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 33 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 34 | IRODS_SERVER_ROLE=1 \ 35 | ODBC_DRIVER_FOR_POSTGRES=2 \ 36 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 37 | IRODS_DATABASE_SERVER_PORT=5432 \ 38 | IRODS_DATABASE_NAME=ICAT \ 39 | IRODS_DATABASE_USER_NAME=irods \ 40 | IRODS_DATABASE_PASSWORD=temppassword \ 41 | IRODS_DATABASE_USER_PASSWORD_SALT=tempsalt \ 42 | IRODS_ZONE_NAME=tempZone \ 43 | IRODS_PORT=1247 \ 44 | IRODS_PORT_RANGE_BEGIN=20000 \ 45 | IRODS_PORT_RANGE_END=20199 \ 46 | IRODS_CONTROL_PLANE_PORT=1248 \ 47 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas \ 48 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 49 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 50 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 51 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 52 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 53 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 54 | UID_POSTGRES=999 \ 55 | GID_POSTGRES=999 \ 56 | UID_IRODS=998 \ 57 | GID_IRODS=998 \ 58 | POSTGRES_USER=postgres \ 59 | POSTGRES_PASSWORD=postgres 60 | 61 | # create postgresql.tar.gz 62 | RUN cd /var/lib/postgresql/data \ 63 | && tar -czvf /postgresql.tar.gz . \ 64 | && cd / 65 | 66 | # create irods.tar.gz 67 | RUN cd /var/lib/irods \ 68 | && tar -czvf /irods.tar.gz . \ 69 | && cd / 70 | 71 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 72 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 73 | 74 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 75 | 76 | WORKDIR /var/lib/irods/ 77 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 78 | -------------------------------------------------------------------------------- /4.1.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.1.8 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.1.8 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | sudo \ 17 | unixodbc \ 18 | odbc-postgresql \ 19 | super \ 20 | perl \ 21 | libssl1.0.0 \ 22 | libfuse2 \ 23 | libjson-perl \ 24 | perl \ 25 | python \ 26 | python-psutil \ 27 | python-requests \ 28 | lsof \ 29 | python-jsonschema \ 30 | moreutils \ 31 | jq 32 | 33 | RUN wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 34 | && wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-database-plugin-postgres-1.8-ubuntu14-x86_64.deb \ 35 | && dpkg -i \ 36 | irods-database-plugin-postgres-1.8-ubuntu14-x86_64.deb \ 37 | irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 38 | && rm -f irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 39 | && rm -f irods-database-plugin-postgres-1.8-ubuntu14-x86_64.deb 40 | 41 | # default iRODS and PostgreSQL environment variables 42 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 43 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 44 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 45 | IRODS_DATABASE_SERVER_PORT=5432 \ 46 | IRODS_DATABASE_NAME=ICAT \ 47 | IRODS_DATABASE_USER_NAME=irods \ 48 | IRODS_DATABASE_PASSWORD=temppassword \ 49 | IRODS_ZONE_NAME=tempZone \ 50 | IRODS_PORT=1247 \ 51 | IRODS_PORT_RANGE_BEGIN=20000 \ 52 | IRODS_PORT_RANGE_END=20199 \ 53 | IRODS_CONTROL_PLANE_PORT=1248 \ 54 | IRODS_SCHEMA_VALIDATION=https://schemas.irods.org/configuration \ 55 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 56 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 57 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 58 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 59 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 60 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 61 | UID_POSTGRES=999 \ 62 | GID_POSTGRES=999 \ 63 | UID_IRODS=998 \ 64 | GID_IRODS=998 \ 65 | POSTGRES_USER=postgres \ 66 | POSTGRES_PASSWORD=postgres 67 | 68 | # create postgresql.tar.gz 69 | RUN cd /var/lib/postgresql/data \ 70 | && tar -czvf /postgresql.tar.gz . \ 71 | && cd / 72 | 73 | # create var_irods.tar.gz 74 | RUN cd /var/lib/irods \ 75 | && tar -czvf /var_irods.tar.gz . \ 76 | && cd / 77 | 78 | # create etc_irods.tar.gz 79 | RUN cd /etc/irods \ 80 | && tar -czvf /etc_irods.tar.gz . \ 81 | && cd / 82 | 83 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 84 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 85 | 86 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 87 | 88 | WORKDIR /var/lib/irods/ 89 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /4.1.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.1.9 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.1.9 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | sudo \ 17 | unixodbc \ 18 | odbc-postgresql \ 19 | super \ 20 | perl \ 21 | libssl1.0.0 \ 22 | libfuse2 \ 23 | libjson-perl \ 24 | perl \ 25 | python \ 26 | python-psutil \ 27 | python-requests \ 28 | lsof \ 29 | python-jsonschema \ 30 | moreutils \ 31 | jq 32 | 33 | RUN wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 34 | && wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-database-plugin-postgres-1.9-ubuntu14-x86_64.deb \ 35 | && dpkg -i \ 36 | irods-database-plugin-postgres-1.9-ubuntu14-x86_64.deb \ 37 | irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 38 | && rm -f irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 39 | && rm -f irods-database-plugin-postgres-1.9-ubuntu14-x86_64.deb 40 | 41 | # default iRODS and PostgreSQL environment variables 42 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 43 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 44 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 45 | IRODS_DATABASE_SERVER_PORT=5432 \ 46 | IRODS_DATABASE_NAME=ICAT \ 47 | IRODS_DATABASE_USER_NAME=irods \ 48 | IRODS_DATABASE_PASSWORD=temppassword \ 49 | IRODS_ZONE_NAME=tempZone \ 50 | IRODS_PORT=1247 \ 51 | IRODS_PORT_RANGE_BEGIN=20000 \ 52 | IRODS_PORT_RANGE_END=20199 \ 53 | IRODS_CONTROL_PLANE_PORT=1248 \ 54 | IRODS_SCHEMA_VALIDATION=https://schemas.irods.org/configuration \ 55 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 56 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 57 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 58 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 59 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 60 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 61 | UID_POSTGRES=999 \ 62 | GID_POSTGRES=999 \ 63 | UID_IRODS=998 \ 64 | GID_IRODS=998 \ 65 | POSTGRES_USER=postgres \ 66 | POSTGRES_PASSWORD=postgres 67 | 68 | # create postgresql.tar.gz 69 | RUN cd /var/lib/postgresql/data \ 70 | && tar -czvf /postgresql.tar.gz . \ 71 | && cd / 72 | 73 | # create var_irods.tar.gz 74 | RUN cd /var/lib/irods \ 75 | && tar -czvf /var_irods.tar.gz . \ 76 | && cd / 77 | 78 | # create etc_irods.tar.gz 79 | RUN cd /etc/irods \ 80 | && tar -czvf /etc_irods.tar.gz . \ 81 | && cd / 82 | 83 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 84 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 85 | 86 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 87 | 88 | WORKDIR /var/lib/irods/ 89 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /4.1.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.1.10 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.1.10 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | sudo \ 17 | unixodbc \ 18 | odbc-postgresql \ 19 | super \ 20 | perl \ 21 | libssl1.0.0 \ 22 | libfuse2 \ 23 | libjson-perl \ 24 | perl \ 25 | python \ 26 | python-psutil \ 27 | python-requests \ 28 | lsof \ 29 | python-jsonschema \ 30 | moreutils \ 31 | jq 32 | 33 | RUN wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 34 | && wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-database-plugin-postgres-1.10-ubuntu14-x86_64.deb \ 35 | && dpkg -i \ 36 | irods-database-plugin-postgres-1.10-ubuntu14-x86_64.deb \ 37 | irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 38 | && rm -f irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 39 | && rm -f irods-database-plugin-postgres-1.10-ubuntu14-x86_64.deb 40 | 41 | # default iRODS and PostgreSQL environment variables 42 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 43 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 44 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 45 | IRODS_DATABASE_SERVER_PORT=5432 \ 46 | IRODS_DATABASE_NAME=ICAT \ 47 | IRODS_DATABASE_USER_NAME=irods \ 48 | IRODS_DATABASE_PASSWORD=temppassword \ 49 | IRODS_ZONE_NAME=tempZone \ 50 | IRODS_PORT=1247 \ 51 | IRODS_PORT_RANGE_BEGIN=20000 \ 52 | IRODS_PORT_RANGE_END=20199 \ 53 | IRODS_CONTROL_PLANE_PORT=1248 \ 54 | IRODS_SCHEMA_VALIDATION=https://schemas.irods.org/configuration \ 55 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 56 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 57 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 58 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 59 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 60 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 61 | UID_POSTGRES=999 \ 62 | GID_POSTGRES=999 \ 63 | UID_IRODS=998 \ 64 | GID_IRODS=998 \ 65 | POSTGRES_USER=postgres \ 66 | POSTGRES_PASSWORD=postgres 67 | 68 | # create postgresql.tar.gz 69 | RUN cd /var/lib/postgresql/data \ 70 | && tar -czvf /postgresql.tar.gz . \ 71 | && cd / 72 | 73 | # create var_irods.tar.gz 74 | RUN cd /var/lib/irods \ 75 | && tar -czvf /var_irods.tar.gz . \ 76 | && cd / 77 | 78 | # create etc_irods.tar.gz 79 | RUN cd /etc/irods \ 80 | && tar -czvf /etc_irods.tar.gz . \ 81 | && cd / 82 | 83 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 84 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 85 | 86 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 87 | 88 | WORKDIR /var/lib/irods/ 89 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /4.1.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.1.11 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.1.11 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | sudo \ 17 | unixodbc \ 18 | odbc-postgresql \ 19 | super \ 20 | perl \ 21 | libssl1.0.0 \ 22 | libfuse2 \ 23 | libjson-perl \ 24 | perl \ 25 | python \ 26 | python-psutil \ 27 | python-requests \ 28 | lsof \ 29 | python-jsonschema \ 30 | moreutils \ 31 | jq 32 | 33 | RUN wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 34 | && wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-database-plugin-postgres-1.11-ubuntu14-x86_64.deb \ 35 | && dpkg -i \ 36 | irods-database-plugin-postgres-1.11-ubuntu14-x86_64.deb \ 37 | irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 38 | && rm -f irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 39 | && rm -f irods-database-plugin-postgres-1.11-ubuntu14-x86_64.deb 40 | 41 | # default iRODS and PostgreSQL environment variables 42 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 43 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 44 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 45 | IRODS_DATABASE_SERVER_PORT=5432 \ 46 | IRODS_DATABASE_NAME=ICAT \ 47 | IRODS_DATABASE_USER_NAME=irods \ 48 | IRODS_DATABASE_PASSWORD=temppassword \ 49 | IRODS_ZONE_NAME=tempZone \ 50 | IRODS_PORT=1247 \ 51 | IRODS_PORT_RANGE_BEGIN=20000 \ 52 | IRODS_PORT_RANGE_END=20199 \ 53 | IRODS_CONTROL_PLANE_PORT=1248 \ 54 | IRODS_SCHEMA_VALIDATION=https://schemas.irods.org/configuration \ 55 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 56 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 57 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 58 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 59 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 60 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 61 | UID_POSTGRES=999 \ 62 | GID_POSTGRES=999 \ 63 | UID_IRODS=998 \ 64 | GID_IRODS=998 \ 65 | POSTGRES_USER=postgres \ 66 | POSTGRES_PASSWORD=postgres 67 | 68 | # create postgresql.tar.gz 69 | RUN cd /var/lib/postgresql/data \ 70 | && tar -czvf /postgresql.tar.gz . \ 71 | && cd / 72 | 73 | # create var_irods.tar.gz 74 | RUN cd /var/lib/irods \ 75 | && tar -czvf /var_irods.tar.gz . \ 76 | && cd / 77 | 78 | # create etc_irods.tar.gz 79 | RUN cd /etc/irods \ 80 | && tar -czvf /etc_irods.tar.gz . \ 81 | && cd / 82 | 83 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 84 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 85 | 86 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 87 | 88 | WORKDIR /var/lib/irods/ 89 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /4.1.12/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:10 2 | MAINTAINER Michael J. Stealey 3 | 4 | ENV IRODS_VERSION=4.1.12 5 | 6 | # set user/group IDs for irods account 7 | RUN groupadd -r irods --gid=998 \ 8 | && useradd -r -g irods -d /var/lib/irods --uid=998 irods \ 9 | && mv /docker-entrypoint.sh /postgres-docker-entrypoint.sh 10 | 11 | # install iRODS 4.1.12 12 | RUN echo "deb http://ftp.debian.org/debian jessie-backports main" \ 13 | > /etc/apt/sources.list.d/jessie-backports.list \ 14 | && apt-get update && apt-get install -y \ 15 | wget \ 16 | sudo \ 17 | unixodbc \ 18 | odbc-postgresql \ 19 | super \ 20 | perl \ 21 | libssl1.0.0 \ 22 | libfuse2 \ 23 | libjson-perl \ 24 | perl \ 25 | python \ 26 | python-psutil \ 27 | python-requests \ 28 | lsof \ 29 | python-jsonschema \ 30 | moreutils \ 31 | jq 32 | 33 | RUN wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 34 | && wget -L ftp://ftp.renci.org/pub/irods/releases/${IRODS_VERSION}/ubuntu14/irods-database-plugin-postgres-1.12-ubuntu14-x86_64.deb \ 35 | && dpkg -i \ 36 | irods-database-plugin-postgres-1.12-ubuntu14-x86_64.deb \ 37 | irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 38 | && rm -f irods-icat-${IRODS_VERSION}-ubuntu14-x86_64.deb \ 39 | && rm -f irods-database-plugin-postgres-1.12-ubuntu14-x86_64.deb 40 | 41 | # default iRODS and PostgreSQL environment variables 42 | ENV IRODS_SERVICE_ACCOUNT_NAME=irods \ 43 | IRODS_SERVICE_ACCOUNT_GROUP=irods \ 44 | IRODS_DATABASE_SERVER_HOSTNAME=localhost \ 45 | IRODS_DATABASE_SERVER_PORT=5432 \ 46 | IRODS_DATABASE_NAME=ICAT \ 47 | IRODS_DATABASE_USER_NAME=irods \ 48 | IRODS_DATABASE_PASSWORD=temppassword \ 49 | IRODS_ZONE_NAME=tempZone \ 50 | IRODS_PORT=1247 \ 51 | IRODS_PORT_RANGE_BEGIN=20000 \ 52 | IRODS_PORT_RANGE_END=20199 \ 53 | IRODS_CONTROL_PLANE_PORT=1248 \ 54 | IRODS_SCHEMA_VALIDATION=https://schemas.irods.org/configuration \ 55 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods \ 56 | IRODS_SERVER_ZONE_KEY=TEMPORARY_zone_key \ 57 | IRODS_SERVER_NEGOTIATION_KEY=TEMPORARY_32byte_negotiation_key \ 58 | IRODS_CONTROL_PLANE_KEY=TEMPORARY__32byte_ctrl_plane_key \ 59 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=rods \ 60 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault \ 61 | UID_POSTGRES=999 \ 62 | GID_POSTGRES=999 \ 63 | UID_IRODS=998 \ 64 | GID_IRODS=998 \ 65 | POSTGRES_USER=postgres \ 66 | POSTGRES_PASSWORD=postgres 67 | 68 | # create postgresql.tar.gz 69 | RUN cd /var/lib/postgresql/data \ 70 | && tar -czvf /postgresql.tar.gz . \ 71 | && cd / 72 | 73 | # create var_irods.tar.gz 74 | RUN cd /var/lib/irods \ 75 | && tar -czvf /var_irods.tar.gz . \ 76 | && cd / 77 | 78 | # create etc_irods.tar.gz 79 | RUN cd /etc/irods \ 80 | && tar -czvf /etc_irods.tar.gz . \ 81 | && cd / 82 | 83 | COPY ./docker-entrypoint.sh /irods-docker-entrypoint.sh 84 | VOLUME /var/lib/irods /etc/irods /var/lib/postgresql/data 85 | 86 | EXPOSE $IRODS_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_PORT_RANGE_BEGIN-$IRODS_PORT_RANGE_END 87 | 88 | WORKDIR /var/lib/irods/ 89 | ENTRYPOINT ["/irods-docker-entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /4.2.0/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 114 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 115 | fi 116 | } 117 | 118 | ### main ### 119 | 120 | ### external volume mounts will be empty on initial run 121 | if [[ ! -f /var/lib/irods/irodsctl ]]; then 122 | _irods_tgz 123 | fi 124 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 125 | _postgresql_tgz 126 | fi 127 | 128 | ### check for UID:GID change and update directory permissions 129 | _update_uid_gid 130 | 131 | ### start postgres 132 | if [[ ! -d /var/lib/irods/iRODS ]]; then 133 | bash /postgres-docker-entrypoint.sh postgres & 134 | else 135 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 136 | fi 137 | 138 | ### wait for database to stand up 139 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 140 | echo "Postgres is unavailable - sleeping" 141 | sleep 2 142 | done 143 | 144 | ### start iRODS 145 | if [[ ! -d /var/lib/irods/iRODS ]]; then 146 | ### initialize iRODS if being run for the first time 147 | _database_setup 148 | _generate_config 149 | python /var/lib/irods/scripts/setup_irods.py < /irods.config 150 | _update_uid_gid 151 | else 152 | ### restart iRODS if being run after initialization 153 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 154 | echo "Postgres is unavailable - sleeping" 155 | sleep 2 156 | done 157 | _hostname_update 158 | service irods start 159 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 160 | fi 161 | 162 | ### Keep a foreground process running forever 163 | tail -f /dev/null 164 | 165 | exit 0; 166 | -------------------------------------------------------------------------------- /4.2.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 114 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 115 | fi 116 | } 117 | 118 | ### main ### 119 | 120 | ### external volume mounts will be empty on initial run 121 | if [[ ! -f /var/lib/irods/irodsctl ]]; then 122 | _irods_tgz 123 | fi 124 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 125 | _postgresql_tgz 126 | fi 127 | 128 | ### check for UID:GID change and update directory permissions 129 | _update_uid_gid 130 | 131 | ### start postgres 132 | if [[ ! -d /var/lib/irods/iRODS ]]; then 133 | bash /postgres-docker-entrypoint.sh postgres & 134 | else 135 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 136 | fi 137 | 138 | ### wait for database to stand up 139 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 140 | echo "Postgres is unavailable - sleeping" 141 | sleep 2 142 | done 143 | 144 | ### start iRODS 145 | if [[ ! -d /var/lib/irods/iRODS ]]; then 146 | ### initialize iRODS if being run for the first time 147 | _database_setup 148 | _generate_config 149 | python /var/lib/irods/scripts/setup_irods.py < /irods.config 150 | _update_uid_gid 151 | else 152 | ### restart iRODS if being run after initialization 153 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 154 | echo "Postgres is unavailable - sleeping" 155 | sleep 2 156 | done 157 | _hostname_update 158 | service irods start 159 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 160 | fi 161 | 162 | ### Keep a foreground process running forever 163 | tail -f /dev/null 164 | 165 | exit 0; 166 | -------------------------------------------------------------------------------- /4.2.2/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 114 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 115 | fi 116 | } 117 | 118 | ### main ### 119 | 120 | ### external volume mounts will be empty on initial run 121 | if [[ ! -f /var/lib/irods/irodsctl ]]; then 122 | _irods_tgz 123 | fi 124 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 125 | _postgresql_tgz 126 | fi 127 | 128 | ### check for UID:GID change and update directory permissions 129 | _update_uid_gid 130 | 131 | ### start postgres 132 | if [[ ! -d /var/lib/irods/iRODS ]]; then 133 | bash /postgres-docker-entrypoint.sh postgres & 134 | else 135 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 136 | fi 137 | 138 | ### wait for database to stand up 139 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 140 | echo "Postgres is unavailable - sleeping" 141 | sleep 2 142 | done 143 | 144 | ### start iRODS 145 | if [[ ! -d /var/lib/irods/iRODS ]]; then 146 | ### initialize iRODS if being run for the first time 147 | _database_setup 148 | _generate_config 149 | python /var/lib/irods/scripts/setup_irods.py < /irods.config 150 | _update_uid_gid 151 | else 152 | ### restart iRODS if being run after initialization 153 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 154 | echo "Postgres is unavailable - sleeping" 155 | sleep 2 156 | done 157 | _hostname_update 158 | service irods start 159 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 160 | fi 161 | 162 | ### Keep a foreground process running forever 163 | tail -f /dev/null 164 | 165 | exit 0; 166 | -------------------------------------------------------------------------------- /4.2.3/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 114 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 115 | fi 116 | } 117 | 118 | ### main ### 119 | 120 | ### external volume mounts will be empty on initial run 121 | if [[ ! -f /var/lib/irods/irodsctl ]]; then 122 | _irods_tgz 123 | fi 124 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 125 | _postgresql_tgz 126 | fi 127 | 128 | ### check for UID:GID change and update directory permissions 129 | _update_uid_gid 130 | 131 | ### start postgres 132 | if [[ ! -d /var/lib/irods/iRODS ]]; then 133 | bash /postgres-docker-entrypoint.sh postgres & 134 | else 135 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 136 | fi 137 | 138 | ### wait for database to stand up 139 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 140 | echo "Postgres is unavailable - sleeping" 141 | sleep 2 142 | done 143 | 144 | ### start iRODS 145 | if [[ ! -d /var/lib/irods/iRODS ]]; then 146 | ### initialize iRODS if being run for the first time 147 | _database_setup 148 | _generate_config 149 | python /var/lib/irods/scripts/setup_irods.py < /irods.config 150 | _update_uid_gid 151 | else 152 | ### restart iRODS if being run after initialization 153 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 154 | echo "Postgres is unavailable - sleeping" 155 | sleep 2 156 | done 157 | _hostname_update 158 | service irods start 159 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 160 | fi 161 | 162 | ### Keep a foreground process running forever 163 | tail -f /dev/null 164 | 165 | exit 0; 166 | -------------------------------------------------------------------------------- /4.2.4/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 114 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 115 | fi 116 | } 117 | 118 | ### main ### 119 | 120 | ### external volume mounts will be empty on initial run 121 | if [[ ! -f /var/lib/irods/irodsctl ]]; then 122 | _irods_tgz 123 | fi 124 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 125 | _postgresql_tgz 126 | fi 127 | 128 | ### check for UID:GID change and update directory permissions 129 | _update_uid_gid 130 | 131 | ### start postgres 132 | if [[ ! -d /var/lib/irods/iRODS ]]; then 133 | bash /postgres-docker-entrypoint.sh postgres & 134 | else 135 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 136 | fi 137 | 138 | ### wait for database to stand up 139 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 140 | echo "Postgres is unavailable - sleeping" 141 | sleep 2 142 | done 143 | 144 | ### start iRODS 145 | if [[ ! -d /var/lib/irods/iRODS ]]; then 146 | ### initialize iRODS if being run for the first time 147 | _database_setup 148 | _generate_config 149 | python /var/lib/irods/scripts/setup_irods.py < /irods.config 150 | _update_uid_gid 151 | else 152 | ### restart iRODS if being run after initialization 153 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 154 | echo "Postgres is unavailable - sleeping" 155 | sleep 2 156 | done 157 | _hostname_update 158 | service irods start 159 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 160 | fi 161 | 162 | ### Keep a foreground process running forever 163 | tail -f /dev/null 164 | 165 | exit 0; 166 | -------------------------------------------------------------------------------- /4.1.10/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 118 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 119 | fi 120 | } 121 | 122 | ### main ### 123 | 124 | ### external volume mounts will be empty on initial run 125 | if [[ ! -f /var/lib/irods/iRODS/irodsctl ]]; then 126 | _var_irods_tgz 127 | fi 128 | if [[ ! -f /etc/irods/server_config.json ]]; then 129 | _etc_irods_tgz 130 | fi 131 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 132 | _postgresql_tgz 133 | fi 134 | 135 | ### check for UID:GID change and update directory permissions 136 | _update_uid_gid 137 | 138 | ### start postgres 139 | if [[ ! -d /var/lib/irods/.irods ]]; then 140 | bash /postgres-docker-entrypoint.sh postgres & 141 | else 142 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 143 | fi 144 | 145 | ### wait for database to stand up 146 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 147 | echo "Postgres is unavailable - sleeping" 148 | sleep 2 149 | done 150 | 151 | ### start iRODS 152 | if [[ ! -d /var/lib/irods/.irods ]]; then 153 | ### initialize iRODS if being run for the first time 154 | _database_setup 155 | _generate_config 156 | sudo /var/lib/irods/packaging/setup_irods.sh < /irods.config 157 | _update_uid_gid 158 | else 159 | ### restart iRODS if being run after initialization 160 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 161 | echo "Postgres is unavailable - sleeping" 162 | sleep 2 163 | done 164 | _hostname_update 165 | service irods start 166 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 167 | fi 168 | 169 | ### Keep a foreground process running forever 170 | tail -f /dev/null 171 | 172 | exit 0; 173 | -------------------------------------------------------------------------------- /4.1.11/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 118 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 119 | fi 120 | } 121 | 122 | ### main ### 123 | 124 | ### external volume mounts will be empty on initial run 125 | if [[ ! -f /var/lib/irods/iRODS/irodsctl ]]; then 126 | _var_irods_tgz 127 | fi 128 | if [[ ! -f /etc/irods/server_config.json ]]; then 129 | _etc_irods_tgz 130 | fi 131 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 132 | _postgresql_tgz 133 | fi 134 | 135 | ### check for UID:GID change and update directory permissions 136 | _update_uid_gid 137 | 138 | ### start postgres 139 | if [[ ! -d /var/lib/irods/.irods ]]; then 140 | bash /postgres-docker-entrypoint.sh postgres & 141 | else 142 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 143 | fi 144 | 145 | ### wait for database to stand up 146 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 147 | echo "Postgres is unavailable - sleeping" 148 | sleep 2 149 | done 150 | 151 | ### start iRODS 152 | if [[ ! -d /var/lib/irods/.irods ]]; then 153 | ### initialize iRODS if being run for the first time 154 | _database_setup 155 | _generate_config 156 | sudo /var/lib/irods/packaging/setup_irods.sh < /irods.config 157 | _update_uid_gid 158 | else 159 | ### restart iRODS if being run after initialization 160 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 161 | echo "Postgres is unavailable - sleeping" 162 | sleep 2 163 | done 164 | _hostname_update 165 | service irods start 166 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 167 | fi 168 | 169 | ### Keep a foreground process running forever 170 | tail -f /dev/null 171 | 172 | exit 0; 173 | -------------------------------------------------------------------------------- /4.1.12/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 118 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 119 | fi 120 | } 121 | 122 | ### main ### 123 | 124 | ### external volume mounts will be empty on initial run 125 | if [[ ! -f /var/lib/irods/iRODS/irodsctl ]]; then 126 | _var_irods_tgz 127 | fi 128 | if [[ ! -f /etc/irods/server_config.json ]]; then 129 | _etc_irods_tgz 130 | fi 131 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 132 | _postgresql_tgz 133 | fi 134 | 135 | ### check for UID:GID change and update directory permissions 136 | _update_uid_gid 137 | 138 | ### start postgres 139 | if [[ ! -d /var/lib/irods/.irods ]]; then 140 | bash /postgres-docker-entrypoint.sh postgres & 141 | else 142 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 143 | fi 144 | 145 | ### wait for database to stand up 146 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 147 | echo "Postgres is unavailable - sleeping" 148 | sleep 2 149 | done 150 | 151 | ### start iRODS 152 | if [[ ! -d /var/lib/irods/.irods ]]; then 153 | ### initialize iRODS if being run for the first time 154 | _database_setup 155 | _generate_config 156 | sudo /var/lib/irods/packaging/setup_irods.sh < /irods.config 157 | _update_uid_gid 158 | else 159 | ### restart iRODS if being run after initialization 160 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 161 | echo "Postgres is unavailable - sleeping" 162 | sleep 2 163 | done 164 | _hostname_update 165 | service irods start 166 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 167 | fi 168 | 169 | ### Keep a foreground process running forever 170 | tail -f /dev/null 171 | 172 | exit 0; 173 | -------------------------------------------------------------------------------- /4.1.8/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 118 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 119 | fi 120 | } 121 | 122 | ### main ### 123 | 124 | ### external volume mounts will be empty on initial run 125 | if [[ ! -f /var/lib/irods/iRODS/irodsctl ]]; then 126 | _var_irods_tgz 127 | fi 128 | if [[ ! -f /etc/irods/server_config.json ]]; then 129 | _etc_irods_tgz 130 | fi 131 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 132 | _postgresql_tgz 133 | fi 134 | 135 | ### check for UID:GID change and update directory permissions 136 | _update_uid_gid 137 | 138 | ### start postgres 139 | if [[ ! -d /var/lib/irods/.irods ]]; then 140 | bash /postgres-docker-entrypoint.sh postgres & 141 | else 142 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 143 | fi 144 | 145 | ### wait for database to stand up 146 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 147 | echo "Postgres is unavailable - sleeping" 148 | sleep 2 149 | done 150 | 151 | ### start iRODS 152 | if [[ ! -d /var/lib/irods/.irods ]]; then 153 | ### initialize iRODS if being run for the first time 154 | _database_setup 155 | _generate_config 156 | sudo /var/lib/irods/packaging/setup_irods.sh < /irods.config 157 | _update_uid_gid 158 | else 159 | ### restart iRODS if being run after initialization 160 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 161 | echo "Postgres is unavailable - sleeping" 162 | sleep 2 163 | done 164 | _hostname_update 165 | service irods start 166 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 167 | fi 168 | 169 | ### Keep a foreground process running forever 170 | tail -f /dev/null 171 | 172 | exit 0; 173 | -------------------------------------------------------------------------------- /4.1.9/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ### update UID:GID values for irods and postgres service accounts 5 | _update_uid_gid() { 6 | # if UID_POSTGRES = UID_IRODS, exit with error message 7 | if [[ ${UID_POSTGRES} = ${UID_IRODS} ]]; then 8 | echo "ERROR: user irods and user postgres cannot have same UID!!!" 9 | exit 1; 10 | else 11 | # if UID_POSTGRES != UID_IRODS, reassign individual UIDs 12 | if [[ ${UID_IRODS} = 999 ]]; then 13 | usermod -u 1999 irods 14 | fi 15 | usermod -u ${UID_POSTGRES} postgres 16 | usermod -u ${UID_IRODS} irods 17 | fi 18 | # if GID_POSTGRES = GID_IRODS, reset GID_POSTGRES=GID_IRODS-1 and use GID_IRODS group permissions 19 | if [[ ${GID_POSTGRES} = ${GID_IRODS} ]]; then 20 | groupmod -g ${GID_IRODS} irods 21 | usermod -a -G ${GID_IRODS} postgres 22 | chown -R postgres:irods /var/lib/postgresql 23 | chown -R irods:irods /var/lib/irods 24 | chown -R irods:irods /etc/irods 25 | else 26 | # if GID_POSTGRES != GID_IRODS, reassign individual GIDs 27 | if [[ ${GID_IRODS} = 999 ]]; then 28 | groupmod -g 1999 irods 29 | fi 30 | groupmod -g ${GID_POSTGRES} postgres 31 | groupmod -g ${GID_IRODS} irods 32 | chown -R postgres:postgres /var/lib/postgresql 33 | chown -R irods:irods /var/lib/irods 34 | chown -R irods:irods /etc/irods 35 | fi 36 | } 37 | 38 | ### initialize ICAT database 39 | _database_setup() { 40 | cat > /init_icat.sql < /irods.config < update_hostname.sql 118 | su irods PGPASSWORD=temppassword -c 'psql -d ICAT -U '${IRODS_DATABASE_USER_NAME}' -a -f update_hostname.sql' 119 | fi 120 | } 121 | 122 | ### main ### 123 | 124 | ### external volume mounts will be empty on initial run 125 | if [[ ! -f /var/lib/irods/iRODS/irodsctl ]]; then 126 | _var_irods_tgz 127 | fi 128 | if [[ ! -f /etc/irods/server_config.json ]]; then 129 | _etc_irods_tgz 130 | fi 131 | if [[ ! -f /var/lib/postgresql/data/pg_hba.conf ]]; then 132 | _postgresql_tgz 133 | fi 134 | 135 | ### check for UID:GID change and update directory permissions 136 | _update_uid_gid 137 | 138 | ### start postgres 139 | if [[ ! -d /var/lib/irods/.irods ]]; then 140 | bash /postgres-docker-entrypoint.sh postgres & 141 | else 142 | su postgres -c '/usr/lib/postgresql/10/bin/pg_ctl start' 143 | fi 144 | 145 | ### wait for database to stand up 146 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 147 | echo "Postgres is unavailable - sleeping" 148 | sleep 2 149 | done 150 | 151 | ### start iRODS 152 | if [[ ! -d /var/lib/irods/.irods ]]; then 153 | ### initialize iRODS if being run for the first time 154 | _database_setup 155 | _generate_config 156 | sudo /var/lib/irods/packaging/setup_irods.sh < /irods.config 157 | _update_uid_gid 158 | else 159 | ### restart iRODS if being run after initialization 160 | until [ $(pg_isready -h ${IRODS_DATABASE_SERVER_HOSTNAME} -q)$? -eq 0 ]; do 161 | echo "Postgres is unavailable - sleeping" 162 | sleep 2 163 | done 164 | _hostname_update 165 | service irods start 166 | su irods -c 'echo ${IRODS_SERVER_ADMINISTRATOR_PASSWORD} | iinit' 167 | fi 168 | 169 | ### Keep a foreground process running forever 170 | tail -f /dev/null 171 | 172 | exit 0; 173 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # irods-provider-postgres 2 | 3 | ## What is iRODS? 4 | 5 | The Integrated Rule-Oriented Data System (iRODS) is open source data management software used by research organizations and government agencies worldwide. 6 | 7 | iRODS is released as a production-level distribution aimed at deployment in mission critical environments. It virtualizes data storage resources, so users can take control of their data, regardless of where and on what device the data is stored. 8 | 9 | The development infrastructure supports exhaustive testing on supported platforms. 10 | 11 | The plugin architecture supports microservices, storage systems, authentication, networking, databases, rule engines, and an extensible API. 12 | 13 | For more details refer to the [official iRODS documentation](https://docs.irods.org/4.2.4). 14 | 15 | ## Supported tags and respective Dockerfile links 16 | 17 | The following tags are supported at: [https://hub.docker.com/r/mjstealey/irods-provider-postgres/](https://hub.docker.com/r/mjstealey/irods-provider-postgres/) 18 | 19 | - 4.2.4, latest ([4.2.4/Dockerfile](4.2.4/Dockerfile)) 20 | - 4.2.3 ([4.2.3/Dockerfile](4.2.3/Dockerfile)) 21 | - 4.2.2 ([4.2.2/Dockerfile](4.2.2/Dockerfile)) 22 | - 4.2.1 ([4.2.1/Dockerfile](4.2.1/Dockerfile)) 23 | - 4.2.0 ([4.2.0/Dockerfile](4.2.0/Dockerfile)) 24 | - 4.1.12 ([4.1.12/Dockerfile](4.1.12/Dockerfile)) 25 | - 4.1.11 ([4.1.11/Dockerfile](4.1.11/Dockerfile)) 26 | - 4.1.10 ([4.1.10/Dockerfile](4.1.10/Dockerfile)) 27 | - 4.1.9 ([4.1.9/Dockerfile](4.1.9/Dockerfile)) 28 | - 4.1.8 ([4.1.8/Dockerfile](4.1.8/Dockerfile)) 29 | 30 | ## Get the Docker image 31 | 32 | ### Pull image from dockerhub 33 | 34 | ``` 35 | docker pull mjstealey/irods-provider-postgres:latest 36 | ``` 37 | 38 | ### Build image locally 39 | 40 | ``` 41 | cd irods-provider-postgres/4.2.4 42 | docker build -t irods-provider-postgres:4.2.4 . 43 | ``` 44 | 45 | ## Run the iRODS Provider 46 | 47 | ``` 48 | docker run -d --name provider mjstealey/irods-provider-postgres:4.2.4 49 | ``` 50 | 51 | - **Note**: This image is based from the [PostgreSQL Docker definition files](https://hub.docker.com/_/postgres/) which includes `EXPOSE 5432` (the postgres port), so standard container linking will make it automatically available to the linked containers. The default postgres user and database are created in the entrypoint with `initdb`. 52 | 53 | ## Running iCommands 54 | 55 | Since iRODS is running inside of a Docker container, we need to issue iCommands from within the container's scope. This can be accomplished by either getting on the container as the `irods` user, or invoked from the host. 56 | 57 | ### On the container 58 | 59 | ```console 60 | $ docker exec -ti -u irods provider /bin/bash 61 | irods@9ca1f64052e0:~$ iadmin lz 62 | tempZone 63 | irods@9ca1f64052e0:~$ iadmin lr 64 | bundleResc 65 | demoResc 66 | irods@9ca1f64052e0:~$ ilsresc -l 67 | resource name: demoResc 68 | id: 10014 69 | zone: tempZone 70 | type: unixfilesystem 71 | class: cache 72 | location: 9ca1f64052e0 73 | vault: /var/lib/irods/iRODS/Vault 74 | free space: 75 | free space time: : Never 76 | status: 77 | info: 78 | comment: 79 | create time: 01526144986: 2018-05-12.17:09:46 80 | modify time: 01526144986: 2018-05-12.17:09:46 81 | context: 82 | parent: 83 | parent context: 84 | irods@9ca1f64052e0:~$ ils 85 | /tempZone/home/rods: 86 | irods@9ca1f64052e0:~$ 87 | ``` 88 | 89 | - **Note**: Since the hostname of the container was not explicitly set, Docker will issue a random ID which in this case is `9ca1f64052e0`. This could be problematic depending on use case and it is left to the user to assign a hostname that is meaningful to their setup. 90 | 91 | ### On the host 92 | 93 | ```console 94 | $ docker exec -ti -u irods provider ilsresc -l 95 | resource name: demoResc 96 | id: 10014 97 | zone: tempZone 98 | type: unixfilesystem 99 | class: cache 100 | location: 9ca1f64052e0 101 | vault: /var/lib/irods/iRODS/Vault 102 | free space: 103 | free space time: : Never 104 | status: 105 | info: 106 | comment: 107 | create time: 01526144986: 2018-05-12.17:09:46 108 | modify time: 01526144986: 2018-05-12.17:09:46 109 | context: 110 | parent: 111 | parent context: 112 | ``` 113 | 114 | ## Environment Variables 115 | 116 | The iRODS service has a multitude of configuration options available to it. The variables used during an installation of iRODS have been exposed to the user as settable environment variables and are honored at runtime. 117 | 118 | ### `IRODS_SERVICE_ACCOUNT_NAME` 119 | 120 | Service account name - The account that will be in charge of running iRODS services. Default is `irods`. 121 | 122 | ### `IRODS_SERVICE_ACCOUNT_GROUP` 123 | 124 | Service account group - The group that will be in charge of running iRODS services. Default is `irods`. 125 | 126 | ### `IRODS_SERVER_ROLE` (version 4.2.0+) 127 | 128 | Catalog service role - The role of the node being deploy where `1` denotes an iRODS provider and `2` denotes an iRODS consumer. Default is `1` 129 | 130 | ### `ODBC_DRIVER_FOR_POSTGRES` (version 4.2.0+) 131 | 132 | ODBC driver - For PostgreSQL where `1` is **PostgreSQL ANSI** and `2` is **PostgreSQL Unicode**. Default is `2`. 133 | 134 | ### `IRODS_DATABASE_SERVER_HOSTNAME` 135 | 136 | Database server's hostname or IP - Location of where the PostgreSQL database is running. Default is `localhost` 137 | 138 | ### `IRODS_DATABASE_SERVER_PORT` 139 | 140 | Database server's port - Port which PostgreSQL is listening on. Default is `5432` 141 | 142 | ### `IRODS_DATABASE_NAME` 143 | 144 | Database name - Name used to service the iRODS catalog. Default is `ICAT` 145 | 146 | ### `IRODS_DATABASE_USER_NAME` 147 | 148 | Database user - User that has owner rights on the iRODS catalog database in PostgreSQL. Default is `irods` 149 | 150 | ### `IRODS_DATABASE_PASSWORD` 151 | 152 | Database password - Password for the user that has owner rights on the iRODS catalog database in PostgreSQL. Default is `temppassword` 153 | 154 | ### `IRODS_DATABASE_USER_PASSWORD_SALT` (version 4.2.0+) 155 | 156 | Stored passwords salt - Random data that is used as an additional input to a one-way function that "hashes" data, a password or passphrase. Salts are closely related to the concept of nonce. Default is `tempsalt` 157 | 158 | ### `IRODS_ZONE_NAME` 159 | 160 | Zone name - Logical namespace defining the extent of all resources managed in the iRODS catalog. Default is `tempZone` 161 | 162 | ### `IRODS_PORT` 163 | 164 | Zone port - Port over which iRODS services are communicated. Default is `1247` 165 | 166 | ### `IRODS_PORT_RANGE_BEGIN` 167 | 168 | Parallel port range (begin) - Beginning port of the range of ports used for parallel transfer. Default is `20000` 169 | 170 | ### `IRODS_PORT_RANGE_END` 171 | 172 | Parallel port range (end) - Ending port of the range of ports used for parallel transfer. Default is `20199` 173 | 174 | ### `IRODS_CONTROL_PLANE_PORT` 175 | 176 | Control plane port - Port over which iRODS grid control is communicated. Default is `1248` 177 | 178 | ### `IRODS_SCHEMA_VALIDATION` 179 | 180 | Schema validation base URI - URI used to validate the iRODS schema on the server. Default is `file:///var/lib/irods/configuration_schemas` 181 | 182 | ### `IRODS_SERVER_ADMINISTRATOR_USER_NAME` 183 | 184 | iRODS administrator username - Initial adminstrative user created in the iRODS zone. Default is `rods` 185 | 186 | ### `IRODS_SERVER_ZONE_KEY` 187 | 188 | Zone key - Unique string of characters used to ID a particular zone. Default is `TEMPORARY_zone_key` 189 | 190 | ### `IRODS_SERVER_NEGOTIATION_KEY` 191 | 192 | Negotiation key - 32 byte string used for inter-server communication. Default is `TEMPORARY_32byte_negotiation_key` 193 | 194 | ### `IRODS_CONTROL_PLANE_KEY` 195 | 196 | Control plane key - 32 byte string used for inter-server communication. Default is `TEMPORARY__32byte_ctrl_plane_key` 197 | 198 | ### `IRODS_SERVER_ADMINISTRATOR_PASSWORD` 199 | 200 | iRODS administrator password - Password for the initial adminstrative user created in the iRODS zone. Default is `rods` 201 | 202 | ### `IRODS_VAULT_DIRECTORY` 203 | 204 | Vault directory - Physical location on disk associated with the creation of the initial unix filesystem resource named `demoResc`. Default is `/var/lib/irods/iRODS/Vault` 205 | 206 | ### `UID_POSTGRES` 207 | 208 | UID of the postgres service account - This can be set to any available system UID. Default is `999` 209 | 210 | ### `GID_POSTGRES` 211 | 212 | GID of the postgres service account - This can be set to any available system GID .Default is `999` 213 | 214 | ### `UID_IRODS` 215 | 216 | UID of the irods service account - This can be set to any available system UID. Default is `998` 217 | 218 | ### `GID_IRODS` 219 | 220 | GID of the irods service account - This can be set to any available system GID. Default is `998` 221 | 222 | ### `POSTGRES_USER` 223 | 224 | This optional environment variable is used in conjunction with `POSTGRES_PASSWORD` to set a user and its password. This variable will create the specified user with superuser power and a database with the same name. If it is not specified, then the default user of `postgres` will be used. Default is `postgres` 225 | 226 | ### `POSTGRES_PASSWORD` 227 | 228 | This environment variable is recommended for you to use the PostgreSQL image. This environment variable sets the superuser password for PostgreSQL. The default superuser is defined by the `POSTGRES_USER` environment variable. Default is `postgres` 229 | 230 | ## Persisting data 231 | 232 | The default behavior of Docker is to not persist it's data beyond the lifecycle of the container. This can be allieviated by mapping the data directories of the container to volumes on the host. The primary iRODS and PostgreSQL directories are designed to be volume mountable if the user so chooses. 233 | 234 | ### `/var/lib/irods` 235 | 236 | iRODS home - Primary iRODS service files, including default location for the vault, logging and scripts. Ownership of files is based on the `UID_IRODS` and `GID_IRODS` settings. 237 | 238 | ### `/etc/irods` 239 | 240 | iRODS configuration - Primary iRODS configuration files that are generated at runtime. Ownership of files is based on the `UID_IRODS` and `GID_IRODS` settings. 241 | 242 | ### `/var/lib/postgresql/data` 243 | 244 | PostgreSQL data - Database service files and data files. Ownership of files is based on the `UID_POSTGRES` and `GID_POSTGRES` settings. 245 | 246 | ## Examples 247 | 248 | ### Simple 249 | 250 | ``` 251 | docker run -d --name provider \ 252 | mjstealey/irods-provider-postgres:latest 253 | ``` 254 | This call has been daemonized (additional **-d** flag) which would most likely be used in an actual environment 255 | 256 | On completion a running container named **provider** is spawned: 257 | 258 | ```console 259 | $ docker ps 260 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 261 | 3d6855129ec7 mjstealey/irods-provider-postgres:latest "/irods-docker-entry…" About a minute ago Up About a minute 1247-1248/tcp, 5432/tcp, 20000-20199/tcp provider 262 | ``` 263 | 264 | Configuration is based on the default environment variables as defined above. 265 | 266 | **NOTE:** The `irods_host` value is set to the ID of the Docker container. This can be specified by the user at runtime using the `-h HOST_NAME` syntax. 267 | 268 | ### Persisting data 269 | 270 | By sharing volumes from the host to the container, the user can persist data between container instances even if the original container definition is removed from the system. 271 | 272 | Volumes to mount: 273 | 274 | - **iRODS home**: map to `/var/lib/irods/` on the container 275 | - **iRODS configuration**: map to `/etc/irods/` on the container 276 | - **PostgreSQL data**: map to `/var/lib/postgresql/data/` on the container 277 | 278 | SE Linux users should note that volume mounts may fail, and may require a `:z` or `:Z` at the end of their volume defintion. 279 | 280 | - `-v $(pwd)/var_irods:/var/lib/irods:z` 281 | 282 | It is also recommended to define a **hostname** for the container when persisting data as the hostname information is written to the data store on initialization. 283 | 284 | 1. Create volumes on the host: 285 | 286 | ``` 287 | mkdir var_irods # map to /var/lib/irods/ 288 | mkdir etc_irods # map to /etc/irods/ 289 | mkdir var_pgdata # map to /var/lib/postgresql/data/ 290 | ``` 291 | 292 | 2. Run the docker container with the `-i` flag for **init**: 293 | 294 | ``` 295 | docker run -d --name provider \ 296 | -h irods-provider \ 297 | -v $(pwd)/var_irods:/var/lib/irods \ 298 | -v $(pwd)/etc_irods:/etc/irods \ 299 | -v $(pwd)/var_pgdata:/var/lib/postgresql/data \ 300 | mjstealey/irods-provider-postgres:latest 301 | ``` 302 | 303 | Note, the host volumes now contain the relevant data to the iRODS deployment 304 | 305 | ```console 306 | $ ls -lh var_irods 307 | total 24 308 | -rw-------@ 1 xxxxx xxxxx 224B May 12 22:08 VERSION.json 309 | -rw-r--r--@ 1 xxxxx xxxxx 166B Nov 7 2017 VERSION.json.dist 310 | drwxr-xr-x@ 4 xxxxx xxxxx 128B May 12 13:06 clients 311 | drwxr-xr-x@ 4 xxxxx xxxxx 128B May 12 13:06 config 312 | drwxr-xr-x@ 3 xxxxx xxxxx 96B May 12 13:06 configuration_schemas 313 | drwx------@ 3 xxxxx xxxxx 96B May 12 22:08 iRODS 314 | -r-xr--r--@ 1 xxxxx xxxxx 283B Nov 7 2017 irodsctl 315 | drwxr-xr-x@ 7 xxxxx xxxxx 224B May 12 22:08 log 316 | drwxr-xr-x@ 6 xxxxx xxxxx 192B May 12 13:06 msiExecCmd_bin 317 | drwxr-xr-x@ 18 xxxxx xxxxx 576B May 12 13:06 packaging 318 | drwxr-xr-x@ 22 xxxxx xxxxx 704B May 12 13:06 scripts 319 | drwxr-xr-x@ 4 xxxxx xxxxx 128B May 12 13:06 test 320 | 321 | $ ls -lh etc_irods 322 | total 136 323 | -rw-r--r--@ 1 xxxxx xxxxx 4.9K May 12 22:08 core.dvm 324 | -rw-r--r--@ 1 xxxxx xxxxx 831B May 12 22:08 core.fnm 325 | -rw-r--r--@ 1 xxxxx xxxxx 38K May 12 22:08 core.re 326 | -rw-r--r--@ 1 xxxxx xxxxx 106B May 12 22:08 host_access_control_config.json 327 | -rw-r--r--@ 1 xxxxx xxxxx 90B May 12 22:08 hosts_config.json 328 | -rw-------@ 1 xxxxx xxxxx 3.4K May 12 22:08 server_config.json 329 | -rw-r--r--@ 1 xxxxx xxxxx 64B May 12 22:07 service_account.config 330 | 331 | $ ls -lh var_pgdata 332 | total 104 333 | -rw-------@ 1 xxxxx xxxxx 3B May 12 22:07 PG_VERSION 334 | drwx------@ 6 xxxxx xxxxx 192B May 12 22:07 base 335 | drwx------@ 61 xxxxx xxxxx 1.9K May 12 22:10 global 336 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_commit_ts 337 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_dynshmem 338 | -rw-------@ 1 xxxxx xxxxx 4.4K May 12 22:07 pg_hba.conf 339 | -rw-------@ 1 xxxxx xxxxx 1.6K May 12 22:07 pg_ident.conf 340 | drwx------@ 5 xxxxx xxxxx 160B May 12 22:07 pg_logical 341 | drwx------@ 4 xxxxx xxxxx 128B May 12 22:07 pg_multixact 342 | drwx------@ 3 xxxxx xxxxx 96B May 12 22:07 pg_notify 343 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_replslot 344 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_serial 345 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_snapshots 346 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_stat 347 | drwx------@ 6 xxxxx xxxxx 192B May 12 22:20 pg_stat_tmp 348 | drwx------@ 3 xxxxx xxxxx 96B May 12 22:07 pg_subtrans 349 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_tblspc 350 | drwx------@ 2 xxxxx xxxxx 64B May 12 22:07 pg_twophase 351 | drwx------@ 4 xxxxx xxxxx 128B May 12 22:07 pg_wal 352 | drwx------@ 3 xxxxx xxxxx 96B May 12 22:07 pg_xact 353 | -rw-------@ 1 xxxxx xxxxx 88B May 12 22:07 postgresql.auto.conf 354 | -rw-------@ 1 xxxxx xxxxx 22K May 12 22:07 postgresql.conf 355 | -rw-------@ 1 xxxxx xxxxx 36B May 12 22:07 postmaster.opts 356 | -rw-------@ 1 xxxxx xxxxx 95B May 12 22:07 postmaster.pid 357 | ``` 358 | 359 | Go ahead and `iput` some data and verify it in the catalog. 360 | 361 | ```console 362 | $ docker exec -u irods provider iput VERSION.json 363 | $ docker exec -u irods provider ils -Lr 364 | /tempZone/home/rods: 365 | rods 0 demoResc 224 2018-05-13.02:24 & VERSION.json 366 | generic /var/lib/irods/iRODS/Vault/home/rods/VERSION.json 367 | ``` 368 | 369 | **Note**: The physical file can be found at: `$(pwd)/var_irods/iRODS/Vault/home/rods/VERSION.json` of the host 370 | 371 | 3. Stop and remove the provider container: 372 | 373 | ``` 374 | docker stop provider 375 | docker rm -fv provider 376 | ``` 377 | This destroys any host level definitions or default docker managed volumes related to the provider container and makes it impossible to recover the data from that container if we had not persisted it locally 378 | 379 | 4. Run a new docker container: 380 | 381 | ``` 382 | docker run -d --name new-provider \ 383 | -h irods-provider \ 384 | -v $(pwd)/var_irods:/var/lib/irods \ 385 | -v $(pwd)/etc_irods:/etc/irods \ 386 | -v $(pwd)/var_pgdata:/var/lib/postgresql/data \ 387 | mjstealey/irods-provider-postgres:latest 388 | ``` 389 | Even though the name of the docker container was changed, the shared host volume mounts and the defined hostname that the container should use remained the same. 390 | 391 | Verify that the file put from the previous container has persisted on the new container instance. 392 | 393 | ```console 394 | $ docker exec -u irods new-provider ils -Lr 395 | /tempZone/home/rods: 396 | rods 0 demoResc 224 2018-05-13.02:24 & VERSION.json 397 | generic /var/lib/irods/iRODS/Vault/home/rods/VERSION.json 398 | ``` 399 | 400 | ### Real world usage 401 | 402 | The docker based implementation of iRODS can be used as a standard iRODS catalog provider when being installed on a VM or other platform capable of running docker and has a DNS resolvable name. 403 | 404 | In this example we will be using a VM on a private VLAN (not publicly accessible) with: 405 | 406 | - Hostname: `mjs-dev-1.edc.renci.org` 407 | - User: `stealey` 408 | - UID/GID: `20022`/`10000` 409 | - iRODS files to be owned by `20022`/`10000` 410 | - PostgreSQL files to be owned by `999`/`10000` 411 | - Map 412 | - host: `/var/provider/lib_irods` to docker - `/var/lib/irods` 413 | - host: `/var/provider/etc_irods` to docker - `/etc/irods` 414 | - host: `/var/provider/pg_data` to docker - `/var/lib/postgresql/data` 415 | 416 | **Configuration** 417 | 418 | Create an environment file that captures the essence of what you want to deploy. In this example this has been named `irods-provider.env`. The file only needs to contain the values that are being changed from the default, but all are shown here for completeness. 419 | 420 | Passwords generated using [pwgen](https://sourceforge.net/projects/pwgen/): `$ pwgen -cnB 32 1` 421 | 422 | Example: `irods-provider.env` 423 | 424 | ``` 425 | IRODS_SERVICE_ACCOUNT_NAME=irods 426 | IRODS_SERVICE_ACCOUNT_GROUP=irods 427 | IRODS_SERVER_ROLE=1 428 | ODBC_DRIVER_FOR_POSTGRES=2 429 | IRODS_DATABASE_SERVER_HOSTNAME=localhost 430 | IRODS_DATABASE_SERVER_PORT=5432 431 | IRODS_DATABASE_NAME=ICAT 432 | IRODS_DATABASE_USER_NAME=irods 433 | IRODS_DATABASE_PASSWORD=thooJohkoo4tah9xi3xuehobooNaikoo 434 | IRODS_DATABASE_USER_PASSWORD_SALT=ifu9ocohteipuchae4eejienoe3bahth 435 | IRODS_ZONE_NAME=mjsDevZone 436 | IRODS_PORT=1247 437 | IRODS_PORT_RANGE_BEGIN=20000 438 | IRODS_PORT_RANGE_END=20199 439 | IRODS_CONTROL_PLANE_PORT=1248 440 | IRODS_SCHEMA_VALIDATION=file:///var/lib/irods/configuration_schemas 441 | IRODS_SERVER_ADMINISTRATOR_USER_NAME=rods 442 | IRODS_SERVER_ZONE_KEY=unieg4aing3Ed4Too7choT4ie4Eiceiz 443 | IRODS_SERVER_NEGOTIATION_KEY=ieb4mahNg7wahiefoo4ahchif9seiC4a 444 | IRODS_CONTROL_PLANE_KEY=aiNiePhi4queshiacoog3uugai4UhooJ 445 | IRODS_SERVER_ADMINISTRATOR_PASSWORD=eeThefeig3ahNo9othaequooMo4bohsa 446 | IRODS_VAULT_DIRECTORY=/var/lib/irods/iRODS/Vault 447 | UID_POSTGRES=999 448 | GID_POSTGRES=10000 449 | UID_IRODS=20022 450 | GID_IRODS=10000 451 | ``` 452 | Create the directories on the host to share with the provider container and set the permissions to correspond with the UID/GID that will be passed to the container. 453 | 454 | ``` 455 | $ sudo mkdir -p /var/provider/lib_irods \ 456 | /var/provider/etc_irods \ 457 | /var/provider/pg_data 458 | $ sudo chown -R 20022:10000 /var/provider/lib_irods \ 459 | /var/provider/etc_irods 460 | $ sudo chown -R 999:10000 /var/provider/pg_data 461 | $ sudo ls -alh /var/provider/ ### <-- validate settings 462 | ``` 463 | 464 | **Deployment** 465 | 466 | Because we want this to interact as a normal iRODS provider, we will need to specify the necessary port mappings for it to do so. specifically ports `1247`, `1248` and `20000-20199`. 467 | 468 | Run this docker command from the same directory as the `irods-provider.env` file. 469 | 470 | ``` 471 | docker run -d --name provider \ 472 | -h mjs-dev-1.edc.renci.org \ 473 | --env-file=irods-provider.env \ 474 | -v /var/provider/lib_irods:/var/lib/irods \ 475 | -v /var/provider/etc_irods:/etc/irods \ 476 | -v /var/provider/pg_data:/var/lib/postgresql/data \ 477 | -p 1247:1247 \ 478 | -p 1248:1248 \ 479 | -p 20000-20199:20000-20199 \ 480 | mjstealey/irods-provider-postgres:latest 481 | ``` 482 | 483 | Since the container is being run with the `-d` flag, progress can be monitored by using docker attach to attach a terminal to the `STDOUT` of the container. 484 | 485 | ``` 486 | docker attach --sig-proxy=false provider 487 | ``` 488 | 489 | Use `ctl-c` to exit when finished. 490 | 491 | Output of docker ps should look something like: 492 | 493 | ```console 494 | $ docker ps 495 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 496 | f04993705973 mjstealey/irods-provider-postgres:latest "/irods-docker-ent..." 27 seconds ago Up 24 seconds 0.0.0.0:1247-1248->1247-1248/tcp, 0.0.0.0:20000-20199->20000-20199/tcp, 5432/tcp provider 497 | ``` 498 | 499 | The container should also identify it's hostname as the same that you are running it on. 500 | 501 | ```console 502 | $ docker exec provider hostname 503 | mjs-dev-1.edc.renci.org 504 | ``` 505 | 506 | **Sample iCommands** 507 | 508 | A true test of the system will be to log in from another machine, iinit as the `rods` user from the `mjs-dev-1.edc.renci.org` deployment, and see if iCommands work as they should. 509 | 510 | In this example we will be using `galera-1.edc.renci.org` as the other machine that has our iRODS deployment within it's network scope (on the same VLAN). 511 | 512 | From `galera-1.edc.renci.org`: 513 | 514 | ```console 515 | $ iinit 516 | One or more fields in your iRODS environment file (irods_environment.json) are 517 | missing; please enter them. 518 | Enter the host name (DNS) of the server to connect to: mjs-dev-1.edc.renci.org 519 | Enter the port number: 1247 520 | Enter your irods user name: rods 521 | Enter your irods zone: mjsDevZone 522 | Those values will be added to your environment file (for use by 523 | other iCommands) if the login succeeds. 524 | 525 | Enter your current iRODS password: eeThefeig3ahNo9othaequooMo4bohsa 526 | 527 | $ ils 528 | /mjsDevZone/home/rods: 529 | 530 | $ iadmin lr 531 | bundleResc 532 | demoResc 533 | 534 | $ iadmin lu 535 | rods#mjsDevZone 536 | 537 | $ iadmin lz 538 | mjsDevZone 539 | ``` 540 | 541 | Try `iput` from `galera-1.edc.renci.org` using a 10MB test file: 542 | 543 | ```console 544 | $ dd if=/dev/zero of=test-file.dat bs=1M count=10 545 | 10+0 records in 546 | 10+0 records out 547 | 10485760 bytes (10 MB) copied, 0.0109233 s, 960 MB/s 548 | $ ls -alh test-file.dat 549 | -rw-r--r-- 1 xxxxx xxxxx 10M Nov 10 13:32 test-file.dat 550 | 551 | $ iput test-file.dat 552 | $ ils -Lr 553 | /mjsDevZone/home/rods: 554 | rods 0 demoResc 10485760 2017-11-10.13:34 & test-file.dat 555 | generic /var/lib/irods/iRODS/Vault/home/rods/test-file.dat 556 | ``` 557 | 558 | Verify file on disk at `mjs-dev-1.edc.renci.org` in the vault: 559 | 560 | ```console 561 | $ sudo ls -alh /var/provider/lib_irods/iRODS/Vault/home/rods 562 | total 10M 563 | drwxr-x--- 2 xxxxx xxxxx 26 Nov 10 13:34 . 564 | drwxr-x--- 3 xxxxx xxxxx 17 Nov 10 13:23 .. 565 | -rw------- 1 xxxxx xxxxx 10M Nov 10 13:34 test-file.dat 566 | ``` 567 | 568 | All other interactions that one would normally have wtih an iRODS provider should hold true for the Docker implementation. 569 | 570 | Since the critical files are persisted to the host, adjustment to files such as `/etc/irods/server_config.json` could instead be done at `/var/provider/etc_irods/server_config.json` so long as the appropriate file access permissions are adhered to. 571 | 572 | ## Additional information 573 | 574 | The provided examples all use the `-d` flag to daemonize the docker container. The output that would normally be displayed to `STDOUT` of the container is therefore suppressed. 575 | 576 | Output example for [iRODS provider v4.2.2](example-output/example-output-4.2.2.md) 577 | 578 | ### iRODS provider in Docker notes 579 | 580 | - 4.2.2 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (16.04 Xenial iRODS packages) 581 | - 4.2.1 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS packages) 582 | - 4.2.0 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS packages) 583 | - 4.1.11 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS ftp deb files) 584 | - 4.1.10 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS ftp deb files) 585 | - 4.1.9 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS ftp deb files) 586 | - 4.1.8 - Debian:stretch based using [PostgreSQL 10](https://github.com/docker-library/postgres/blob/6fe8c15843400444e4ba6906ec6f94b0d526a678/10/Dockerfile) (14.04 Trusty iRODS ftp deb files) 587 | -------------------------------------------------------------------------------- /example-output/example-output-4.2.2.md: -------------------------------------------------------------------------------- 1 | # Example docker output for v4.2.2 initialization 2 | 3 | Example output from running the container in non-daemonized mode and using default configuration settings. 4 | 5 | ``` 6 | docker run --name provider \ 7 | -h my.irods.local \ 8 | -v $(pwd)/var_irods:/var/lib/irods \ 9 | -v $(pwd)/etc_irods:/etc/irods \ 10 | -v $(pwd)/var_pgdata:/var/lib/postgresql/data \ 11 | mjstealey/irods-provider-postgres:latest 12 | ``` 13 | 14 | From console: 15 | 16 | ```console 17 | $ docker run --name provider \ 18 | -h my.irods.local \ 19 | -v $(pwd)/var_irods:/var/lib/irods \ 20 | -v $(pwd)/etc_irods:/etc/irods \ 21 | -v $(pwd)/var_pgdata:/var/lib/postgresql/data \ 22 | mjstealey/irods-provider-postgres:latest 23 | !!! populating /var/lib/irods with initial contents !!! 24 | ./ 25 | ./test/ 26 | ./test/filesystem/ 27 | ./test/filesystem/mapping.txt 28 | ./test/filesystem/make_sector_mapping_table.py 29 | ./test/filesystem/setup_fs.sh 30 | ./test/filesystem/teardown_fs.sh 31 | ./test/test_framework_configuration.json 32 | ./configuration_schemas/ 33 | ./configuration_schemas/v3/ 34 | ./configuration_schemas/v3/zone_bundle.json 35 | ./configuration_schemas/v3/database_config.json 36 | ./configuration_schemas/v3/plugin.json 37 | ./configuration_schemas/v3/rule_engine.json 38 | ./configuration_schemas/v3/VERSION.json 39 | ./configuration_schemas/v3/service_account_environment.json 40 | ./configuration_schemas/v3/client_hints.json 41 | ./configuration_schemas/v3/server_status.json 42 | ./configuration_schemas/v3/host_access_control_config.json 43 | ./configuration_schemas/v3/resource.json 44 | ./configuration_schemas/v3/client_environment.json 45 | ./configuration_schemas/v3/hosts_config.json 46 | ./configuration_schemas/v3/configuration_directory.json 47 | ./configuration_schemas/v3/server_config.json 48 | ./configuration_schemas/v3/server.json 49 | ./configuration_schemas/v3/grid_status.json 50 | ./packaging/ 51 | ./packaging/localhost_setup_postgres.input 52 | ./packaging/find_os.sh 53 | ./packaging/hosts_config.json.template 54 | ./packaging/upgrade-3.3.xto4.0.0.sql 55 | ./packaging/sql/ 56 | ./packaging/sql/icatSysTables.sql 57 | ./packaging/sql/icatDropSysTables.sql 58 | ./packaging/sql/icatSysInserts.sql 59 | ./packaging/sql/icatPurgeRecycleBin.sql 60 | ./packaging/irodsMonPerf.config.in 61 | ./packaging/server_setup_instructions.txt 62 | ./packaging/database_config.json.template 63 | ./packaging/preremove.sh 64 | ./packaging/core.re.template 65 | ./packaging/core.fnm.template 66 | ./packaging/postinstall.sh 67 | ./packaging/server_config.json.template 68 | ./packaging/host_access_control_config.json.template 69 | ./packaging/connectControl.config.template 70 | ./packaging/core.dvm.template 71 | ./scripts/ 72 | ./scripts/kill_pid.py 73 | ./scripts/get_irods_version.py 74 | ./scripts/pid_age.py 75 | ./scripts/system_identification.py 76 | ./scripts/terminate_irods_processes.py 77 | ./scripts/manual_cleanup.py 78 | ./scripts/run_cppcheck.sh 79 | ./scripts/switchuser.py 80 | ./scripts/irods/ 81 | ./scripts/irods/pyparsing.py 82 | ./scripts/irods/core_file.py 83 | ./scripts/irods/setup_options.py 84 | ./scripts/irods/paths.pyc 85 | ./scripts/irods/test/ 86 | ./scripts/irods/test/test_resource_configuration.py 87 | ./scripts/irods/test/test_imeta_help.py 88 | ./scripts/irods/test/rule_texts_for_tests.py 89 | ./scripts/irods/test/test_auth.py 90 | ./scripts/irods/test/test_irmdir.py 91 | ./scripts/irods/test/session.py 92 | ./scripts/irods/test/test_iadmin.py 93 | ./scripts/irods/test/test_ireg.py 94 | ./scripts/irods/test/test_catalog.py 95 | ./scripts/irods/test/test_iticket.py 96 | ./scripts/irods/test/test_native_rule_engine_plugin.py 97 | ./scripts/irods/test/test_iscan.py 98 | ./scripts/irods/test/test_irodsctl.py 99 | ./scripts/irods/test/test_client_hints.py 100 | ./scripts/irods/test/test_resource_tree.py 101 | ./scripts/irods/test/test_chunkydevtest.py 102 | ./scripts/irods/test/test_icommands_file_operations.py 103 | ./scripts/irods/test/metaclass_unittest_test_case_generator.py 104 | ./scripts/irods/test/test_ils.py 105 | ./scripts/irods/test/test_all_rules.py 106 | ./scripts/irods/test/test_federation.py 107 | ./scripts/irods/test/test_iput_options.py 108 | ./scripts/irods/test/README 109 | ./scripts/irods/test/__init__.py 110 | ./scripts/irods/test/test_igroupadmin.py 111 | ./scripts/irods/test/test_ichmod.py 112 | ./scripts/irods/test/command.py 113 | ./scripts/irods/test/test_quotas.py 114 | ./scripts/irods/test/test_iquest.py 115 | ./scripts/irods/test/test_xmsg.py 116 | ./scripts/irods/test/resource_suite.py 117 | ./scripts/irods/test/test_faulty_filesystem.py 118 | ./scripts/irods/test/test_load_balanced_suite.py 119 | ./scripts/irods/test/test_ipasswd.py 120 | ./scripts/irods/test/test_imeta_set.py 121 | ./scripts/irods/test/test_iphymv.py 122 | ./scripts/irods/test/settings.py 123 | ./scripts/irods/test/test_resource_types.py 124 | ./scripts/irods/test/test_rulebase.py 125 | ./scripts/irods/test/test_compatibility.py 126 | ./scripts/irods/test/test_control_plane.py 127 | ./scripts/irods/test/test_irsync.py 128 | ./scripts/irods/six.py 129 | ./scripts/irods/__init__.pyc 130 | ./scripts/irods/lib.py 131 | ./scripts/irods/controller.py 132 | ./scripts/irods/exceptions.py 133 | ./scripts/irods/password_obfuscation.py 134 | ./scripts/irods/convert_configuration_to_json.py 135 | ./scripts/irods/__init__.py 136 | ./scripts/irods/paths.py 137 | ./scripts/irods/log.py 138 | ./scripts/irods/configuration.py 139 | ./scripts/irods/database_upgrade.py 140 | ./scripts/irods/database_interface.py 141 | ./scripts/irods/database_connect.py 142 | ./scripts/irods/json_validation.py 143 | ./scripts/irods/pypyodbc.py 144 | ./scripts/irods/upgrade_configuration.py 145 | ./scripts/irods/start_options.py 146 | ./scripts/make_resource_tree.py 147 | ./scripts/setup_irods.py 148 | ./scripts/validate_json.py 149 | ./scripts/get_db_schema_version.py 150 | ./scripts/run_tests.py 151 | ./scripts/find_shared_object.py 152 | ./scripts/rulebase_fastswap_test_2276.sh 153 | ./scripts/cleanup_resource_tree.py 154 | ./scripts/chown_directories_for_postinstall.py 155 | ./scripts/run_coverage_test.sh 156 | ./scripts/irods_control.py 157 | ./config/ 158 | ./config/packedRei/ 159 | ./config/lockFileDir/ 160 | ./VERSION.json.dist 161 | ./clients/ 162 | ./clients/bin/ 163 | ./clients/bin/genOSAuth 164 | ./clients/icommands/ 165 | ./clients/icommands/test/ 166 | ./clients/icommands/test/misc/ 167 | ./clients/icommands/test/misc/load-metadata.txt 168 | ./clients/icommands/test/misc/email.tag 169 | ./clients/icommands/test/misc/sample.email 170 | ./clients/icommands/test/misc/devtestuser-account-ACL.txt 171 | ./clients/icommands/test/misc/load-usermods.txt 172 | ./clients/icommands/test/rules/ 173 | ./clients/icommands/test/rules/rulemsiPrintGenQueryOutToBuffer.r 174 | ./clients/icommands/test/rules/ruleintegrityACL.r 175 | ./clients/icommands/test/rules/rulemsiAddSelectFieldToGenQuery.r 176 | ./clients/icommands/test/rules/rulemsiDataObjUnlink-trash.r 177 | ./clients/icommands/test/rules/rulemsiExtractTemplateMDFromBuf.r 178 | ./clients/icommands/test/rules/rulemsiMergeDataCopies.r 179 | ./clients/icommands/test/rules/rulemsiGetMoreRows.r 180 | ./clients/icommands/test/rules/rulemsiSetDataObjAvoidResc.r 181 | ./clients/icommands/test/rules/test_no_memory_error_patch_2242.r 182 | ./clients/icommands/test/rules/rulemsiXmlDocSchemaValidate.r 183 | ./clients/icommands/test/rules/rulemsiobjput_z3950.r 184 | ./clients/icommands/test/rules/rulemsiGetSystemTime.r 185 | ./clients/icommands/test/rules/rulemsiStrchop.r 186 | ./clients/icommands/test/rules/ruleprint_hello.r 187 | ./clients/icommands/test/rules/rulemsiHumanToSystemTime.r 188 | ./clients/icommands/test/rules/rulemsiGetContInxFromGenQueryOut.r 189 | ./clients/icommands/test/rules/rulemsiGetAuditTrailInfoByActionID.r 190 | ./clients/icommands/test/rules/rulemsiobjget_test.r 191 | ./clients/icommands/test/rules/rulemsiDataObjUnlink.r 192 | ./clients/icommands/test/rules/rulemsiGetCollectionPSmeta.r 193 | ./clients/icommands/test/rules/rulemsiStrCat.r 194 | ./clients/icommands/test/rules/rulewriteBytesBuf.r 195 | ./clients/icommands/test/rules/rulemsiCollRsync.r 196 | ./clients/icommands/test/rules/rulemsiCopyAVUMetadata.r 197 | ./clients/icommands/test/rules/rulemsiStrArray2String.r 198 | ./clients/icommands/test/rules/rulemsiCollectionSpider.r 199 | ./clients/icommands/test/rules/rulemsiGetDataObjACL.r 200 | ./clients/icommands/test/rules/rulemsiSetMultiReplPerResc.r 201 | ./clients/icommands/test/rules/rulemsiobjget_slink.r 202 | ./clients/icommands/test/rules/rulemsiobjget_irods.r 203 | ./clients/icommands/test/rules/rulemsiObjByName.r 204 | ./clients/icommands/test/rules/rulemsiMakeGenQuery.r 205 | ./clients/icommands/test/rules/rulemsiSortDataObj.r 206 | ./clients/icommands/test/rules/rulemsiGetAuditTrailInfoByUserID.r 207 | ./clients/icommands/test/rules/rulemsiGetStdoutInExecCmdOut.r 208 | ./clients/icommands/test/rules/rulemsiSetResource.r 209 | ./clients/icommands/test/rules/ruleintegrityAVU.r 210 | ./clients/icommands/test/rules/rulemsiXmsgServerConnect.r 211 | ./clients/icommands/test/rules/rulemsiGetDataObjAVUs.r 212 | ./clients/icommands/test/rules/rulemsiFtpGet.r 213 | ./clients/icommands/test/rules/rulemsiMakeQuery.r 214 | ./clients/icommands/test/rules/rulemsiDataObjPhymv.r 215 | ./clients/icommands/test/rules/rulemsiSysChksumDataObj.r 216 | ./clients/icommands/test/rules/rulewriteString.r 217 | ./clients/icommands/test/rules/rulemsiCommit.r 218 | ./clients/icommands/test/rules/rulemsiGetDataObjAIP.r 219 | ./clients/icommands/test/rules/rulemsiobjput_irods.r 220 | ./clients/icommands/test/rules/rulemsiDataObjLseek.r 221 | ./clients/icommands/test/rules/rulemsiLoadMetadataFromXml.r 222 | ./clients/icommands/test/rules/rulemsiServerMonPerf.r 223 | ./clients/icommands/test/rules/rulemsiCreateUser.r 224 | ./clients/icommands/test/rules/rulemsiFlagInfectedObjs.r 225 | ./clients/icommands/test/rules/rulemsiPhyPathReg.r 226 | ./clients/icommands/test/rules/rulemsiDataObjRsync.r 227 | ./clients/icommands/test/rules/rulewritePosInt.r 228 | ./clients/icommands/test/rules/rulemsiSetReplComment.r 229 | ./clients/icommands/test/rules/rulemsiGetFormattedSystemTime-human.r 230 | ./clients/icommands/test/rules/rulemsiDataObjChksum.r 231 | ./clients/icommands/test/rules/rulemsiFreeBuffer.r 232 | ./clients/icommands/test/rules/rulemsiGetDiffTime.r 233 | ./clients/icommands/test/rules/rulemsiSetDataObjPreferredResc.r 234 | ./clients/icommands/test/rules/rulemsiObjStat.r 235 | ./clients/icommands/test/rules/rulemsiWriteRodsLog.r 236 | ./clients/icommands/test/rules/rulemsiExecCmd.r 237 | ./clients/icommands/test/rules/rulemsiSysReplDataObj.r 238 | ./clients/icommands/test/rules/rulemsiTwitterPost.r 239 | ./clients/icommands/test/rules/rulemsiSetRandomScheme.r 240 | ./clients/icommands/test/rules/rulemsiSetACL.r 241 | ./clients/icommands/test/rules/testsuiteForLcov.r 242 | ./clients/icommands/test/rules/rulemsiDataObjCreate.r 243 | ./clients/icommands/test/rules/rulemsiSetRescQuotaPolicy.r 244 | ./clients/icommands/test/rules/rulemsiXsltApply.r 245 | ./clients/icommands/test/rules/rulemsiGetStderrInExecCmdOut.r 246 | ./clients/icommands/test/rules/rulemsiExecStrCondQuery.r 247 | ./clients/icommands/test/rules/rulemsiSplitPath.r 248 | ./clients/icommands/test/rules/rulemsiSetReServerNumProc.r 249 | ./clients/icommands/test/rules/rulemsiDeleteUser.r 250 | ./clients/icommands/test/rules/rulemsiSetBulkPutPostProcPolicy.r 251 | ./clients/icommands/test/rules/ruleintegrityFileSize.r 252 | ./clients/icommands/test/rules/rulemsiOprDisallowed.r 253 | ./clients/icommands/test/rules/rulemsiPrintKeyValPair.r 254 | ./clients/icommands/test/rules/rulegenerateBagIt.r 255 | ./clients/icommands/test/rules/rulemsiSendMail.r 256 | ./clients/icommands/test/rules/testsuite2.r 257 | ./clients/icommands/test/rules/rulemsiSubstr.r 258 | ./clients/icommands/test/rules/rulemsiPropertiesSet.r 259 | ./clients/icommands/test/rules/rulemsiCheckPermission.r 260 | ./clients/icommands/test/rules/rulemsiDataObjOpen.r 261 | ./clients/icommands/test/rules/rulemsiSetDataType.r 262 | ./clients/icommands/test/rules/rulemsiz3950Submit.r 263 | ./clients/icommands/test/rules/rulemsiSetDataTypeFromExt.r 264 | ./clients/icommands/test/rules/rulemsiIsColl.r 265 | ./clients/icommands/test/rules/rulemsiString2StrArray.r 266 | ./clients/icommands/test/rules/rulemsiCheckOwner.r 267 | ./clients/icommands/test/rules/rulemsiRemoveKeyValuePairsFromObj.r 268 | ./clients/icommands/test/rules/rulemsiDataObjGet.r 269 | ./clients/icommands/test/rules/rulemsiDataObjTrim.r 270 | ./clients/icommands/test/rules/rulemsiCollRepl.r 271 | ./clients/icommands/test/rules/rulemsiRenameLocalZone.r 272 | ./clients/icommands/test/rules/rulemsiGetAuditTrailInfoByTimeStamp.r 273 | ./clients/icommands/test/rules/rulemsiobjget_srb.r 274 | ./clients/icommands/test/rules/rulemsiDataObjRename.r 275 | ./clients/icommands/test/rules/rulemsiNoTrashCan.r 276 | ./clients/icommands/test/rules/rulemsiGetCollectionSize.r 277 | ./clients/icommands/test/rules/rulemsiSetPublicUserOpr.r 278 | ./clients/icommands/test/rules/ruleintegrityDataType.r 279 | ./clients/icommands/test/rules/rulemsiSysMetaModify.r 280 | ./clients/icommands/test/rules/rulemsiExecGenQuery.r 281 | ./clients/icommands/test/rules/rulemsiRmColl.r 282 | ./clients/icommands/test/rules/rulemsiDataObjCopy.r 283 | ./clients/icommands/test/rules/rulemsiImageConvert-no-properties.r 284 | ./clients/icommands/test/rules/rulemsiSetDefaultResc.r 285 | ./clients/icommands/test/rules/rulemsiobjput_test.r 286 | ./clients/icommands/test/rules/rulemsiDeleteCollByAdmin.r 287 | ./clients/icommands/test/rules/rulemsiGetFormattedSystemTime.r 288 | ./clients/icommands/test/rules/rulemsiSetGraftPathScheme.r 289 | ./clients/icommands/test/rules/rulemsiobjget_z3950.r 290 | ./clients/icommands/test/rules/rulemsiPropertiesExists.r 291 | ./clients/icommands/test/rules/rulemsiStrlen.r 292 | ./clients/icommands/test/rules/rulemsiTarFileCreate.r 293 | ./clients/icommands/test/rules/rulereadXMsg.r 294 | ./clients/icommands/test/rules/rulemsiGoodFailure.r 295 | ./clients/icommands/test/rules/rulemsiCollCreate.r 296 | ./clients/icommands/test/rules/rulemsiRegisterData.r 297 | ./clients/icommands/test/rules/rulemsiSendXmsg.r 298 | ./clients/icommands/test/rules/ruleintegrityAVUvalue.r 299 | ./clients/icommands/test/rules/rulemsiLoadMetadataFromDataObj.r 300 | ./clients/icommands/test/rules/rulemsiPropertiesNew.r 301 | ./clients/icommands/test/rules/rulemsiQuota.r 302 | ./clients/icommands/test/rules/rulemsiPropertiesAdd.r 303 | ./clients/icommands/test/rules/rulemsiSetQuota.r 304 | ./clients/icommands/test/rules/rulemsiPropertiesClear.r 305 | ./clients/icommands/test/rules/rulemsiStripAVUs.r 306 | ./clients/icommands/test/rules/rulemsiRenameCollection.r 307 | ./clients/icommands/test/rules/ruleTestChangeSessionVar.r 308 | ./clients/icommands/test/rules/rulemsiGetObjectPath.r 309 | ./clients/icommands/test/rules/rulemsiApplyDCMetadataTemplate.r 310 | ./clients/icommands/test/rules/rulemsiRcvXmsg.r 311 | ./clients/icommands/test/rules/rulemsiConvertCurrency.r 312 | ./clients/icommands/test/rules/rulemsiXmsgServerDisConnect.r 313 | ./clients/icommands/test/rules/rulemsiDataObjRepl.r 314 | ./clients/icommands/test/rules/rulemsiRecursiveCollCopy.r 315 | ./clients/icommands/test/rules/rulemsiAddKeyValToMspStr.r 316 | ./clients/icommands/test/rules/rulemsiAddUserToGroup.r 317 | ./clients/icommands/test/rules/rulemsiPrintGenQueryInp.r 318 | ./clients/icommands/test/rules/rulemsiDoSomething.r 319 | ./clients/icommands/test/rules/rulemsiCheckAccess.r 320 | ./clients/icommands/test/rules/rulemsiAssociateKeyValuePairsToObj.r 321 | ./clients/icommands/test/rules/rulemsiGetCollectionContentsReport.r 322 | ./clients/icommands/test/rules/rulemsiStoreVersionWithTS.r 323 | ./clients/icommands/test/rules/rulemsiSdssImgCutout_GetJpeg.r 324 | ./clients/icommands/test/rules/rulemsiCreateUserAccountsFromDataObj.r 325 | ./clients/icommands/test/rules/rulemsiCheckHostAccessControl.r 326 | ./clients/icommands/test/rules/rulemsiDataObjClose.r 327 | ./clients/icommands/test/rules/rulemsiGetCollectionPSmeta-null.r 328 | ./clients/icommands/test/rules/rulemsiGetUserACL.r 329 | ./clients/icommands/test/rules/rulemsiGetAuditTrailInfoByKeywords.r 330 | ./clients/icommands/test/rules/rulemsiPropertiesClone.r 331 | ./clients/icommands/test/rules/rulemsiGetQuote.r 332 | ./clients/icommands/test/rules/rulemsiSplitPathByKey.r 333 | ./clients/icommands/test/rules/rulemsiSetRescSortScheme.r 334 | ./clients/icommands/test/rules/rulemsiGetTaggedValueFromString.r 335 | ./clients/icommands/test/rules/nqueens.r 336 | ./clients/icommands/test/rules/rulemsiCreateXmsgInp.r 337 | ./clients/icommands/test/rules/rulewriteLine.r 338 | ./clients/icommands/test/rules/rulemsiImageGetProperties.r 339 | ./clients/icommands/test/rules/rulemsiGetCollectionACL.r 340 | ./clients/icommands/test/rules/rulemsiXmsgCreateStream.r 341 | ./clients/icommands/test/rules/rulemsiobjput_srb.r 342 | ./clients/icommands/test/rules/rulemsiDeleteUnusedAVUs.r 343 | ./clients/icommands/test/rules/rulemsiIsData.r 344 | ./clients/icommands/test/rules/rulemsiExit.r 345 | ./clients/icommands/test/rules/rulemsiSleep.r 346 | ./clients/icommands/test/rules/rulemsiFlagDataObjwithAVU.r 347 | ./clients/icommands/test/rules/rulemsiRollback.r 348 | ./clients/icommands/test/rules/rulemsiAddConditionToGenQuery.r 349 | ./clients/icommands/test/rules/testsuite1.r 350 | ./clients/icommands/test/rules/rulemsiPropertiesFromString.r 351 | ./clients/icommands/test/rules/rulemsiStrToBytesBuf.r 352 | ./clients/icommands/test/rules/rulemsiImageConvert.r 353 | ./clients/icommands/test/rules/rulemsiPhyBundleColl.r 354 | ./clients/icommands/test/rules/rulemsiobjput_slink.r 355 | ./clients/icommands/test/rules/rulemsiPropertiesToString.r 356 | ./clients/icommands/test/rules/rulemsiAclPolicy.r 357 | ./clients/icommands/test/rules/rulemsiGetValByKey.r 358 | ./clients/icommands/test/rules/rulemsiCreateCollByAdmin.r 359 | ./clients/icommands/test/rules/rulemsiGetIcatTime.r 360 | ./clients/icommands/test/rules/rulemsiobjget_http.r 361 | ./clients/icommands/test/rules/rulemsiStageDataObj.r 362 | ./clients/icommands/test/rules/rulemsiIp2location.r 363 | ./clients/icommands/test/rules/ruleintegrityFileOwner.r 364 | ./clients/icommands/test/rules/ruleintegrityExpiry.r 365 | ./clients/icommands/test/rules/rulemsiSetNumThreads.r 366 | ./clients/icommands/test/rules/rulemsiStructFileBundle.r 367 | ./clients/icommands/test/rules/rulemsiPropertiesRemove.r 368 | ./clients/icommands/test/rules/rulemsiString2KeyValPair.r 369 | ./clients/icommands/test/rules/rulemsiExtractNaraMetadata.r 370 | ./clients/icommands/test/rules/rulewriteKeyValPairs.r 371 | ./clients/icommands/test/rules/rulemsiListEnabledMS.r 372 | ./clients/icommands/test/rules/rulemsiGetUserInfo.r 373 | ./clients/icommands/test/rules/rulemsiGetSessionVarValue.r 374 | ./clients/icommands/test/rules/rulemsiPropertiesGet.r 375 | ./clients/icommands/test/rules/rulemsiTarFileExtract.r 376 | ./clients/icommands/test/rules/rulemsiDataObjWrite.r 377 | ./clients/icommands/test/rules/rulemsiGetDataObjPSmeta.r 378 | ./clients/icommands/test/rules/rulemsiReadMDTemplateIntoTagStruct.r 379 | ./clients/icommands/test/rules/rulemsiDataObjPut.r 380 | ./clients/icommands/test/rules/rulemsiGetAuditTrailInfoByObjectID.r 381 | ./clients/icommands/test/rules/rulemsiSetNoDirectRescInp.r 382 | ./clients/icommands/test/rules/rulemsiDeleteDisallowed.r 383 | ./clients/icommands/test/rules/rulewriteXMsg.r 384 | ./clients/icommands/test/rules/rulemsiDataObjRead.r 385 | ./clients/icommands/test/rules/rulemsiLoadUserModsFromDataObj.r 386 | ./clients/icommands/test/rules/rulemsiGetObjType.r 387 | ./clients/icommands/test/rules/rulemsiNoChkFilePathPerm.r 388 | ./clients/icommands/test/rules/testsuite3.r 389 | ./clients/icommands/test/rules/rulemsiobjput_http.r 390 | ./clients/icommands/test/rules/rulemsiImageConvert-compression.r 391 | ./clients/icommands/test/rules/rulemsiDeleteUsersFromDataObj.r 392 | ./clients/icommands/test/rules/rulemsiGuessDataType.r 393 | ./clients/icommands/test/rules/rulemsiLoadACLFromDataObj.r 394 | ./clients/icommands/test/rules/rulemsiDigestMonStat.r 395 | ./clients/icommands/test/rules/rulemsiAddKeyVal.r 396 | ./clients/icommands/test/rules/rulemsiExportRecursiveCollMeta.r 397 | ./clients/icommands/test/rules/rulemsiFlushMonStat.r 398 | ./log/ 399 | ./msiExecCmd_bin/ 400 | ./msiExecCmd_bin/irodsServerMonPerf 401 | ./msiExecCmd_bin/hello 402 | ./msiExecCmd_bin/test_execstream.py 403 | ./msiExecCmd_bin/univMSSInterface.sh 404 | ./irodsctl 405 | !!! populating /var/lib/postgresql/data with initial contents !!! 406 | ./ 407 | usermod: no changes 408 | usermod: no changes 409 | Postgres is unavailable - sleeping 410 | The files belonging to this database system will be owned by user "postgres". 411 | This user must also own the server process. 412 | 413 | The database cluster will be initialized with locale "en_US.utf8". 414 | The default database encoding has accordingly been set to "UTF8". 415 | The default text search configuration will be set to "english". 416 | 417 | Data page checksums are disabled. 418 | 419 | fixing permissions on existing directory /var/lib/postgresql/data ... ok 420 | creating subdirectories ... ok 421 | selecting default max_connections ... 100 422 | selecting default shared_buffers ... 128MB 423 | selecting dynamic shared memory implementation ... posix 424 | creating configuration files ... ok 425 | running bootstrap script ... Postgres is unavailable - sleeping 426 | ok 427 | performing post-bootstrap initialization ... Postgres is unavailable - sleeping 428 | Postgres is unavailable - sleeping 429 | Postgres is unavailable - sleeping 430 | ok 431 | syncing data to disk ... Postgres is unavailable - sleeping 432 | 433 | WARNING: enabling "trust" authentication for local connections 434 | You can change this by editing pg_hba.conf or using the option -A, or 435 | --auth-local and --auth-host, the next time you run initdb. 436 | ok 437 | 438 | Success. You can now start the database server using: 439 | 440 | pg_ctl -D /var/lib/postgresql/data -l logfile start 441 | 442 | waiting for server to start....2018-05-13 02:37:37.933 UTC [74] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 443 | 2018-05-13 02:37:38.047 UTC [75] LOG: database system was shut down at 2018-05-13 02:37:34 UTC 444 | 2018-05-13 02:37:38.083 UTC [74] LOG: database system is ready to accept connections 445 | done 446 | server started 447 | ALTER ROLE 448 | 449 | 450 | /postgres-docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* 451 | 452 | 2018-05-13 02:37:38.242 UTC [74] LOG: received fast shutdown request 453 | waiting for server to shut down...2018-05-13 02:37:38.244 UTC [74] LOG: aborting any active transactions 454 | .2018-05-13 02:37:38.249 UTC [74] LOG: worker process: logical replication launcher (PID 81) exited with exit code 1 455 | 2018-05-13 02:37:38.249 UTC [76] LOG: shutting down 456 | 2018-05-13 02:37:38.312 UTC [74] LOG: database system is shut down 457 | done 458 | server stopped 459 | 460 | PostgreSQL init process complete; ready for start up. 461 | 462 | 2018-05-13 02:37:38.377 UTC [28] LOG: listening on IPv4 address "0.0.0.0", port 5432 463 | 2018-05-13 02:37:38.377 UTC [28] LOG: listening on IPv6 address "::", port 5432 464 | 2018-05-13 02:37:38.385 UTC [28] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 465 | 2018-05-13 02:37:38.507 UTC [94] FATAL: the database system is starting up 466 | Postgres is unavailable - sleeping 467 | 2018-05-13 02:37:38.514 UTC [93] LOG: database system was shut down at 2018-05-13 02:37:38 UTC 468 | 2018-05-13 02:37:38.563 UTC [28] LOG: database system is ready to accept connections 469 | 2018-05-13 02:37:40.553 UTC [103] FATAL: role "root" does not exist 470 | CREATE USER irods WITH PASSWORD 'temppassword'; 471 | CREATE DATABASE "ICAT"; 472 | GRANT ALL PRIVILEGES ON DATABASE "ICAT" TO irods; 473 | CREATE USER irods WITH PASSWORD 'temppassword'; 474 | CREATE ROLE 475 | CREATE DATABASE "ICAT"; 476 | CREATE DATABASE 477 | GRANT ALL PRIVILEGES ON DATABASE "ICAT" TO irods; 478 | GRANT 479 | Updating /var/lib/irods/VERSION.json... 480 | The iRODS service account name needs to be defined. 481 | iRODS user [irods]: 482 | iRODS group [irods]: 483 | 484 | +--------------------------------+ 485 | | Setting up the service account | 486 | +--------------------------------+ 487 | 488 | Existing Group Detected: irods 489 | Existing Account Detected: irods 490 | Setting owner of /var/lib/irods to irods:irods 491 | Setting owner of /etc/irods to irods:irods 492 | iRODS server's role: 493 | 1. provider 494 | 2. consumer 495 | Please select a number or choose 0 to enter a new value [1]: 496 | Updating /etc/irods/server_config.json... 497 | 498 | +-----------------------------------------+ 499 | | Configuring the database communications | 500 | +-----------------------------------------+ 501 | 502 | You are configuring an iRODS database plugin. The iRODS server cannot be started until its database has been properly configured. 503 | 504 | ODBC driver for postgres: 505 | 1. PostgreSQL ANSI 506 | 2. PostgreSQL Unicode 507 | Please select a number or choose 0 to enter a new value [1]: 508 | Database server's hostname or IP address [localhost]: 509 | Database server's port [5432]: 510 | Database name [ICAT]: 511 | Database username [irods]: 512 | 513 | ------------------------------------------- 514 | Database Type: postgres 515 | ODBC Driver: PostgreSQL Unicode 516 | Database Host: localhost 517 | Database Port: 5432 518 | Database Name: ICAT 519 | Database User: irods 520 | ------------------------------------------- 521 | 522 | Please confirm [yes]: Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 523 | 524 | 525 | Updating /etc/irods/server_config.json... 526 | Listing database tables... 527 | Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 528 | 529 | Updating /etc/irods/server_config.json... 530 | 531 | +--------------------------------+ 532 | | Configuring the server options | 533 | +--------------------------------+ 534 | 535 | iRODS server's zone name [tempZone]: 536 | iRODS server's port [1247]: 537 | iRODS port range (begin) [20000]: 538 | iRODS port range (end) [20199]: 539 | Control Plane port [1248]: 540 | Schema Validation Base URI (or off) [file:///var/lib/irods/configuration_schemas]: 541 | iRODS server's administrator username [rods]: 542 | 543 | ------------------------------------------- 544 | Zone name: tempZone 545 | iRODS server port: 1247 546 | iRODS port range (begin): 20000 547 | iRODS port range (end): 20199 548 | Control plane port: 1248 549 | Schema validation base URI: file:///var/lib/irods/configuration_schemas 550 | iRODS server administrator: rods 551 | ------------------------------------------- 552 | 553 | Please confirm [yes]: Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 554 | Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 555 | Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 556 | 557 | 558 | 559 | 560 | Updating /etc/irods/server_config.json... 561 | 562 | +-----------------------------------+ 563 | | Setting up the client environment | 564 | +-----------------------------------+ 565 | 566 | Warning: Cannot control echo output on the terminal (stdin is not a tty). Input may be echoed. 567 | 568 | 569 | 570 | Updating /var/lib/irods/.irods/irods_environment.json... 571 | 572 | +--------------------------+ 573 | | Setting up default vault | 574 | +--------------------------+ 575 | 576 | iRODS Vault directory [/var/lib/irods/Vault]: 577 | 578 | +-------------------------+ 579 | | Setting up the database | 580 | +-------------------------+ 581 | 582 | Listing database tables... 583 | Creating database tables... 584 | 585 | +-------------------+ 586 | | Starting iRODS... | 587 | +-------------------+ 588 | 589 | Validating [/var/lib/irods/.irods/irods_environment.json]... Success 590 | Validating [/var/lib/irods/VERSION.json]... Success 591 | Validating [/etc/irods/server_config.json]... Success 592 | Validating [/etc/irods/host_access_control_config.json]... Success 593 | Validating [/etc/irods/hosts_config.json]... Success 594 | Ensuring catalog schema is up-to-date... 595 | Updating to schema version 2... 596 | Updating to schema version 3... 597 | Updating to schema version 4... 598 | Updating to schema version 5... 599 | Catalog schema is up-to-date. 600 | Starting iRODS server... 601 | Success 602 | 603 | +---------------------+ 604 | | Attempting test put | 605 | +---------------------+ 606 | 607 | Putting the test file into iRODS... 608 | Getting the test file from iRODS... 609 | Removing the test file from iRODS... 610 | Success. 611 | 612 | +--------------------------------+ 613 | | iRODS is installed and running | 614 | +--------------------------------+ 615 | 616 | usermod: no changes 617 | usermod: no changes 618 | ``` 619 | --------------------------------------------------------------------------------