-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
275 additions
and
383 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Changelog | ||
|
||
## v4.3.3-1 (2024-12-19) | ||
|
||
- Upgrade to iRODS v4.3.3 (#16) | ||
- Upgrade to PostgreSQL >11 (#18) | ||
- Upgrade image to Ubuntu 20.04 (#19) | ||
- Upgrade scripts for Python3 (#21) | ||
- Set up logging with syslog (#16, #34, #36, #37) | ||
- Enable setting `irods-rule-engine-plugin-python` version in `build.sh` (#27) | ||
- Add changelog (#22) | ||
- Change custom SODAR PAM login method from `POST` to `GET` (bihealth/sodar-server#1999) | ||
- Set bash as shell for `IRODS_SERVICE_ACCOUNT_USER` (#15) | ||
- Add `BUILD_VERSION` in `build.sh` (#23) | ||
- Update minimum password time configuration (#33) | ||
- Add `IRODS_PASSWORD_MIN_TIME` env var (#33) | ||
- Fix SSSD package discovery (#31) | ||
- Enable Python rule engine `core.py` file templating (#41) | ||
- Add `IRODS_CLIENT_SERVER_POLICY` in `core.py` template (#42) | ||
- Remove support for legacy and C++ rule engines (#43) | ||
- Remove `IRODS_AUTHENTICATION_SCHEME` env var (#44) | ||
- Set `IRODS_CLIENT_SERVER_NEGOTIATION` default value to `request_server_negotiation` (#45) | ||
|
||
|
||
## v4.2 (2024-01-19) | ||
|
||
- Tag release for legacy iRODS v4.2 image |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,24 @@ | ||
#!/bin/bash | ||
|
||
export REPO=ghcr.io/bihealth/irods-docker | ||
export IRODS_PKG_VERSION=${IRODS_PKG_VERSION-4.2.11-1} | ||
export IRODS_PKG_VERSION=${IRODS_PKG_VERSION-4.3.3} | ||
export IRODS_PYTHON_RULE_ENGINE_VERSION=${IRODS_PYTHON_RULE_ENGINE_VERSION-4.3.3.0-0+4.3.3} | ||
export BUILD_VERSION=${BUILD_VERSION-1} | ||
|
||
docker build \ | ||
-t "${REPO}:${IRODS_PKG_VERSION}" \ | ||
-t "${REPO}:${IRODS_PKG_VERSION}-${BUILD_VERSION}" \ | ||
--build-arg IRODS_PKG_VERSION=${IRODS_PKG_VERSION} \ | ||
--build-arg IRODS_PYTHON_RULE_ENGINE_VERSION=${IRODS_PYTHON_RULE_ENGINE_VERSION} \ | ||
--target main \ | ||
docker | ||
|
||
docker build \ | ||
-t "${REPO}:${IRODS_PKG_VERSION}-sssd" \ | ||
-t "${REPO}:${IRODS_PKG_VERSION}-${BUILD_VERSION}-sssd" \ | ||
--build-arg IRODS_PKG_VERSION=${IRODS_PKG_VERSION} \ | ||
--build-arg IRODS_PYTHON_RULE_ENGINE_VERSION=${IRODS_PYTHON_RULE_ENGINE_VERSION} \ | ||
--target sssd \ | ||
docker | ||
|
||
echo "Now do:" | ||
echo "docker push ${REPO}:${IRODS_PKG_VERSION}" | ||
echo "docker push ${REPO}:${IRODS_PKG_VERSION}-sssd" | ||
echo "docker push ${REPO}:${IRODS_PKG_VERSION}-${BUILD_VERSION}" | ||
echo "docker push ${REPO}:${IRODS_PKG_VERSION}-${BUILD_VERSION}-sssd" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,18 @@ | ||
# | ||
# Stage: first / main | ||
# | ||
FROM ubuntu:18.04 as main | ||
FROM ubuntu:20.04 AS main | ||
|
||
LABEL org.opencontainers.image.authors="Manuel Holtgrewe <[email protected]>, Mikko Nieminen <[email protected]>" | ||
LABEL org.opencontainers.image.source https://github.com/bihealth/irods-docker | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
ARG IRODS_PKG_VERSION="4.3.3" | ||
ARG IRODS_PKG_SUFFIX="-0~focal" | ||
ARG IRODS_PYTHON_RULE_ENGINE_VERSION="4.3.3.0-0+4.3.3" | ||
|
||
# Environment variables for container runtime | ||
ENV IRODS_PKG_VERSION=4.2.11-1 \ | ||
ENV IRODS_PKG_VERSION=$IRODS_PKG_VERSION \ | ||
IRODS_ROLE=provider \ | ||
IRODS_HOST_NAME=localhost \ | ||
IRODS_SERVICE_ACCOUNT_USER=irods \ | ||
|
@@ -30,8 +33,7 @@ ENV IRODS_PKG_VERSION=4.2.11-1 \ | |
IRODS_SSL_VERIFY_SERVER=none \ | ||
IRODS_PASSWORD_SALT=tempsalt \ | ||
IRODS_SSL_CA_CERT_PATH= \ | ||
IRODS_AUTHENTICATION_SCHEME=native \ | ||
IRODS_CLIENT_SERVER_NEGOTIATION=off \ | ||
IRODS_CLIENT_SERVER_NEGOTIATION=request_server_negotiation \ | ||
IRODS_CLIENT_SERVER_POLICY=CS_NEG_REFUSE \ | ||
IRODS_RESOURCE_DIRECTORY=/data/Vault \ | ||
IRODS_DEFAULT_HASH_SCHEME="SHA256" \ | ||
|
@@ -44,52 +46,67 @@ ENV IRODS_PKG_VERSION=4.2.11-1 \ | |
IRODS_CATALOG_PROVIDER_HOST= \ | ||
IRODS_SSSD_AUTH=0 \ | ||
IRODS_SODAR_AUTH=0 \ | ||
IRODS_SODAR_API_HOST=https://sodar-web | ||
IRODS_SODAR_API_HOST=https://sodar-web \ | ||
IRODS_PASSWORD_MIN_TIME=1209600 | ||
|
||
# Add the wait script to the image | ||
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.7.3/wait /usr/local/bin/wait | ||
RUN chmod +x /usr/local/bin/wait | ||
|
||
# Install general dependencies | ||
RUN apt-get update && apt-get install -y apt-utils | ||
RUN apt-get install -y python python-pip python-dev sudo vim wget netcat lsb-release | ||
RUN apt-get install -y python3 python3-dev python3-distro python3-pip sudo vim wget netcat rsyslog | ||
# lsb-release g++ gnupg2 | ||
|
||
# Install database dependencies | ||
RUN apt-get install -y unixodbc unixodbc-dev odbc-postgresql | ||
|
||
# Install iRODS Python dependencies | ||
RUN pip3 install pyodbc | ||
|
||
# Install iRODS | ||
RUN wget -qO - https://packages.irods.org/irods-signing-key.asc | sudo apt-key add - \ | ||
&& echo "deb [arch=amd64] https://packages.irods.org/apt/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/renci-irods.list \ | ||
&& echo "deb [arch=amd64] https://packages.irods.org/apt/ focal main" | sudo tee /etc/apt/sources.list.d/renci-irods.list \ | ||
&& apt-get update | ||
RUN apt-get install -y irods-server=${IRODS_PKG_VERSION}~bionic \ | ||
irods-database-plugin-postgres=${IRODS_PKG_VERSION}~bionic \ | ||
irods-dev=${IRODS_PKG_VERSION}~bionic \ | ||
irods-rule-engine-plugin-python | ||
RUN useradd -d /var/lib/irods ${IRODS_SERVICE_ACCOUNT_USER} | ||
|
||
# Copy rule-engine installer | ||
COPY files/irods_python-re_installer.py / | ||
RUN chmod +x /irods_python-re_installer.py | ||
RUN apt-get install -y irods-runtime=${IRODS_PKG_VERSION}${IRODS_PKG_SUFFIX} \ | ||
irods-server=${IRODS_PKG_VERSION}${IRODS_PKG_SUFFIX} \ | ||
irods-database-plugin-postgres=${IRODS_PKG_VERSION}${IRODS_PKG_SUFFIX} \ | ||
irods-icommands=${IRODS_PKG_VERSION}${IRODS_PKG_SUFFIX} \ | ||
irods-dev=${IRODS_PKG_VERSION}${IRODS_PKG_SUFFIX} \ | ||
irods-rule-engine-plugin-python=${IRODS_PYTHON_RULE_ENGINE_VERSION}~focal | ||
RUN useradd -d /var/lib/irods -s /bin/bash ${IRODS_SERVICE_ACCOUNT_USER} | ||
|
||
# Install j2cli for templating | ||
RUN apt-get install -y python-jinja2 python-yaml | ||
RUN pip install j2cli | ||
RUN apt-get install -y python3-jinja2 python3-yaml | ||
RUN pip3 install j2cli | ||
|
||
# Install Python PAM support | ||
RUN apt-get install libpam-python pamtester | ||
RUN apt-get update | ||
RUN apt-get install -y libpam-python pamtester | ||
# NOTE: Python2 needed for custom PAM module | ||
RUN apt-get install -y python python-dev | ||
RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py | ||
RUN python2 get-pip.py | ||
RUN pip install requests | ||
|
||
# Copy scripts and templates | ||
COPY docker-entrypoint.sh files/irods_login.sh \ | ||
templates/core.py.template templates/unattended_config.json.j2 \ | ||
COPY docker-entrypoint.sh \ | ||
templates/core.py.j2 templates/unattended_config.json.j2 \ | ||
templates/irods.pam.j2 files/j2-filters.py templates/pam_sodar.py.j2 / | ||
RUN chmod +x /docker-entrypoint.sh /irods_login.sh | ||
RUN chmod +x /docker-entrypoint.sh | ||
|
||
# Set up logging | ||
COPY files/irods_syslog.conf /etc/rsyslog.d/00-irods.conf | ||
COPY files/irods.logrotate /etc/logrotate.d/irods | ||
RUN chmod 0644 /etc/logrotate.d/irods | ||
RUN mkdir -p /var/log/irods | ||
|
||
# Create iRODS vault dir | ||
RUN mkdir -p $IRODS_RESOURCE_DIRECTORY | ||
RUN chown -cR $IRODS_SERVICE_ACCOUNT_GROUP:$IRODS_SERVICE_ACCOUNT_USER $IRODS_RESOURCE_DIRECTORY | ||
|
||
# Data volumes | ||
VOLUME "/etc/irods" "/var/lib/irods/iRODS/server/log" | ||
VOLUME "/etc/irods" | ||
|
||
# Network ports | ||
EXPOSE 4321 $IRODS_ZONE_PORT $IRODS_CONTROL_PLANE_PORT $IRODS_DATA_PORT_RANGE_START-$IRODS_DATA_PORT_RANGE_END | ||
|
@@ -105,4 +122,5 @@ CMD ["irods-start"] | |
FROM main AS sssd | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
RUN apt-get update | ||
RUN apt-get install -y sssd sssd-ldap sssd-tools strace |
Oops, something went wrong.