From 688cb2c3a22650044575c6ebef9a6f20bfc00f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20A=2E=20Matienzo?= Date: Wed, 26 Feb 2025 15:12:11 -0800 Subject: [PATCH] switch to python-dvuploader package --- .gitignore | 1 + Dockerfile | 11 +++++++---- README.md | 6 ++++-- docker-compose.yml | 2 +- requirements.txt | 2 ++ 5 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index b25c15b..454b4c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *~ +*.egg-info \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0462edf..61406cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,8 @@ -FROM eclipse-temurin:21 -ARG VERSION=v1.2.1 +FROM python:3.13-slim WORKDIR /opt/app -ADD https://github.com/GlobalDataverseCommunityConsortium/dataverse-uploader/releases/download/$VERSION/DVUploader-$VERSION.jar DVUploader.jar -ENTRYPOINT ["java", "-jar", "DVUploader.jar"] + +# Install python-dvuploader dependencies +COPY requirements.txt /tmp +RUN pip install -r /tmp/requirements.txt + +ENTRYPOINT [ "dvuploader" ] \ No newline at end of file diff --git a/README.md b/README.md index 2140275..9a8e4ad 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # DVUploader Docker Wrapper +This wraps the Python [dvuploader](https://github.com/gdcc/python-dvuploader/) package that provides parallel direct upload to Dataverse. + ## Volumes The wrapper needs both Digital Assets and the Dataverse Prod volumes mounted at the following locations: @@ -33,8 +35,8 @@ Defaults!/usr/local/sbin/dvuploader.sh !always_set_home %dpgdil ALL=(root) NOPASSWD: /usr/local/sbin/dvuploader.sh # Then members of dpgdil can run your script like so -dvuploader -key=$key -server=$server da/path/to/some/datadir -dvuploader -key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx -server=https://datasets.lib.berkeley.edu -did=doi:10.60503/D3/XXXXX /srv/dataverse/XXXXX +dvuploader da/path/to/some/filepaths --api-token $key --dataverse-url $server +dvuploader /srv/dataverse/XXXXX --api-token xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx --dataverse-url https://datasets.lib.berkeley.edu --pid doi:10.60503/D3/XXXXX --recurse # Note that the local directory /srv/dataverse-prod/dvsantee/etl/processing/ is mapped to /srv/dataverse when you run the dvuploader script ``` diff --git a/docker-compose.yml b/docker-compose.yml index 68aeadd..ce56f07 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,4 +6,4 @@ services: image: ghcr.io/berkeleylibrary/dvuploader:${USER:-default}-development volumes: - /srv/da:/opt/app/da:ro - - /srv/dataverse-prod/dvsantee/etl/processing:/opt/app/dataverse:ro + - /srv/dataverse-prod/dvsantee/etl/processing:/opt/app/dataverse:ro \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1890f7f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# once dvuploader 0.3.0 is out, point this to a proper release spec +dvuploader @ https://github.com/BerkeleyLibrary/python-dvuploader/archive/refs/heads/include-tab-ingest-rebased.zip \ No newline at end of file