iipsrv icon indicating copy to clipboard operation
iipsrv copied to clipboard

Official Docker support for iipsrv 1.1

Open manoaman opened this issue 4 years ago • 9 comments

Hi @ruven

Is there an official release of iipsrv 1.1 in Docker? And I'm also interested to know if Ubuntu 20.04 LTS comes with the latest 1.1.

https://iipimage.sourceforge.io/2019/06/iipsrv-1-1-released/

Thank you, manoaman

manoaman avatar May 13 '20 00:05 manoaman

Is there an official release of iipsrv 1.1 in Docker?

No, there's no official one. It would be a good idea to have one - I'll look into it.

And I'm also interested to know if Ubuntu 20.04 LTS comes with the latest 1.1.

Yes indeed it does: https://packages.ubuntu.com/focal/iipimage-server

ruven avatar May 13 '20 08:05 ruven

Thanks @ruven . That would be great to have. Looking forward to the official release! Tried on my machine and seemed to worked. Attaching sample Dockerfile and entrypoint script.

% docker build -t iipimagesrv1.1 .
% docker run -dit --name iipimage  -p 9000:9000 -v ./images:/mnt/images -v ./config/:/etc/apache2/mods-enabled/ -v ./log/:/tmp/
 iipimagesrv1.1

Dockerfile.txt docker-entrypoint.sh.txt

manoaman avatar May 13 '20 18:05 manoaman

Can't seem to figure out using custom iipsrv.conf with Docker. Logging seems to go /tmp/iipsrv.log and MEMCACHED_SERVERS don't seem to reflect the change. I'm only seeing localhost used.

@ruven has there been a change to configuring MEMCACHED_SERVERS with iipsrv1.1 ? And should iipsrv.fcgi run with root user?

# Create a directory for the iipsrv binary
ScriptAlias /fcgi-bin/ "/usr/lib/iipimage-server/"

# Set the options on that directory
<Directory "/fcgi-bin/">
   AllowOverride None
   Options None
   <IfModule mod_version.c>
     <IfVersion < 2.4>
       Order allow,deny
       Allow from all
     </IfVersion>
     <IfVersion >= 2.4>
       Require all granted
     </IfVersion>
   </IfModule>

   # Set the module handler
   AddHandler fcgid-script .fcgi
</Directory>

# Set our environment variables for the IIP server
FcgidInitialEnv VERBOSITY "6"
FcgidInitialEnv LOGFILE "/var/log/iipsrv.log"
FcgidInitialEnv MAX_IMAGE_CACHE_SIZE "128"
FcgidInitialEnv JPEG_QUALITY "90"
FcgidInitialEnv MAX_CVT "5000"
FcgidInitialEnv MEMCACHED_SERVERS "localhost,test2.com:11211,test3.com:11211,test3.com:11211"
FcgidInitialEnv MEMCACHED_TIMEOUT "86400"

# Define the idle timeout as unlimited and the number of
# processes we want
FcgidIdleTimeout 0
FcgidMaxProcessesPerClass 50

manoaman avatar May 14 '20 00:05 manoaman

Hello,

for information, I made one some years ago (we use iipsrv (from the source) with an nginx in front (a specific version)). https://github.com/cytomine/Dockerfiles/blob/master/iipbase/Dockerfile https://github.com/cytomine/Dockerfiles/blob/master/iipOfficial/Dockerfile

I think the best way is to start from an official ubuntu image and install form package.

Have a nice day ! :-)

geektortoise avatar May 14 '20 07:05 geektortoise

@geektortoise thank you! it is a good example for me to look into.

@ruven I'm a bet confused with the latest iipsrv1.1 on Ubutu20.04 running with Apache. And I was wondering if you don't mind answering to questions.

Do I need to install prerequisite libraries, Apache2, and explicitly load a2enmod on either iipsrv or fcgid to use mod_fastcgi or mod_fcgid? And use systemd to auto start iipsrv?

https://iipimage.sourceforge.io/2012/05/new-debian-and-ubuntu-packages-released/

Second question. If I start iipsrv from a command line, can I pass along iipsrv.conf or fcgid.conf to overwrite config values? Is there a way to know where iipsrv is getting the config values from?

Thanks for your help.

manoaman avatar May 15 '20 01:05 manoaman

i'm using this docker compose https://github.com/medialibraryonline/iipsrv-docker two containers: one running iipsrv with spawn-fcgi, the other running nginx.

atomotic avatar May 24 '20 18:05 atomotic

I've made an official docker image for the 1.2 release (based on Alpine Linux). It uses the Alpine iipsrv package with Lighttpd as a web front-end to provide a fully functional environment for IIPImage:

https://hub.docker.com/r/iipsrv/iipsrv

Let me know if you have any comments or suggestions for improving the Docker image.

ruven avatar Oct 18 '23 13:10 ruven

great, thanks! Is the build automated and could be made for aarch64 too? I was using lately this https://github.com/atomotic/iipsrv.docker (not very optimized, the image is quite big), will switch to your official image.

atomotic avatar Oct 18 '23 13:10 atomotic

Yes, this image is nice and small - only about 12MB!

I've looked into making multi-arch builds and it's not too difficult. I've updated the images to include all the architectures available with Alpine linux: https://hub.docker.com/r/iipsrv/iipsrv

ruven avatar Oct 18 '23 14:10 ruven