Enhance docker-compose.yml to allow running multiple ReSeeD instances on the same host, clean up superfluous environment variables,
- Apr 17, 2025
-
-
Both images are functionally equivalent, but the alpine version is less than a third of the size of the non-alpine version, so it saves both disk space and RAM. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This allows for configuring the name of the network bridge device to which the containers of a given ReSeeD instance connect, and it allows configuring the IPv4 subnet from which those containers get assigned IP addresses. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
We use different docker-compose.yml files to build the container images and to run ReSeeD using those container images. Also add $CONTAINER_IMAGE_TAG, which is required to allow running multiple ReSeeD instances with different container image versions on the same host. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This allows configuring the name prefix for all containers of a given ReSeeD instance without having to rename the directory that contains the docker-compose.yml file. This can be used to avoiding container name collisions when running multiple instances of ReSeeD on the same host. For further details, see https://docs.docker.com/compose/how-tos/environment-variables/envvars/#compose_project_name Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This is required to allow running multiple instances of ReSeeD simultanously on the same host, by allowing to connect to each instance through a different forwarding port from the host system. Note that this *only* changes the port on the host system, whilst Puma still uses the hardcoded port 3000 inside the web container. For further details, see https://docs.docker.com/reference/compose-file/services/#long-syntax-3 Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
Remove non-essential port forwardings from docker-compose.yml and restrict all port forwardings to 127.0.0.1. Without this change, all ports are forwarded on *all* network interfaces of the host system, resulting in Postgres, SOLR and Tomcat/ fcrepo being exposed to the internet unless an additional firewall is used. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This has been deprecated a while ago, so remove it: https://github.com/compose-spec/compose-spec/commit/6d19079ef64dd94d203076e9de6caeb20c498efe Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
These variables can only be used at build time and must not be changed at run time, therefore they do not belong into the generic .env file. Instead, hardcode their values as they are only set/used at a single place in the whole code base anyway. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
$CRC_FOLDER_IMPORT_PATH should only be used *outside* our containers to configure the path to the CRC 1280 bulk ingest mountpoint/directory in docker-compose.yml. Inside the containers, the hardcoded path "/rub-test-data" is used (at least for now, this path should probably be changed to a less confusing name in the future, albeit this will require changes to the CRC 1280 bulk ingest documentation, and should therefore be done on all ReSeeD instances simultanously. Ideally, this path should not be configurable at all inside the CRC 1280 bulk importer configuration web interface, and should instead be removed from the web interface and hardcoded to a fixed path. Also, remove the hyrax/Dockerfile argument $CRC_IMPORT_FOLDER_PATH and replace it with the hardcoded path "/rub-test-data" as well. Finally, remove the $BRAND_PATH environment variable and the "branding" volume as both have never been used and only needlessly clutter the code base. Fixes: 15c541d9 "Fixing mount of import folder path" Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This variable only configures a path *inside* our containers, which is completely useless, and even creates an unecessary point of failure, because this variable potentially breaks downloads if it is set to a different value at run time that the value it was set to at build time. Therefore, just hardcode the path to "/shared/downloads". Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This variable only configures a path *inside* our containers, which is completely useless, and even creates an unecessary point of failure, because this variable might break stuff if it is set to a different value at run time that the value it was set to at build time. Therefore, just hardcode the path to "/shared/cache". Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This variable only configures a path *inside* our containers, which is completely useless, and even creates an unecessary point of failure, because this variable might breaks stuff if it is set to a different value at run time that the value it was set to at build time. Therefore, just hardcode the path to "/shared/derivatives". Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This variable only configures a path *inside* our containers, which is completely useless, and even creates an unecessary point of failure, because this variable breaks uploads if it is set to a different value at run time that the value it was set to at build time. Therefore, just hardcode the path to "/shared/uploads". Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
This variable is not used anywhere in the ReSeeD or Hyrax 3.5.0 codebase, therefore it can be safely removed. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-
These variables have never made sense because of two reasons: - The "bundle exec rails server" call in hyrax/docker-entrypoint.sh has always used the hardcoded port 3000 anyway since the beginning of this project, so these variables were never actually used at all. - Even *if* these variables had been used, their existence *still* wouldn't have made any sense, because they would only set the port number *inside* the docker containers, but *not* the port number on which puma would be exposed to the host system. Signed-off-by:
Pascal Ernster <pascal.ernster@rub.de>
-