One of the things I keep running into, not all the software I want to run has a good working docker container, ready for deployment. This is where docker is great. It takes little effort to find a base image that has all the prerequisites to create your own container to run any software. You can even start from scratch and just use a base OS in a container, like debian or ubuntu. Then just install the prereqs you need, and finish off with the software you want.
This makes docker great for testing and development, if you screw things up, just remove the container and pick up where you left off. Once you figure it out, you can take what you learned and build a dockerfile with all the commands you need to create an automated build. I ended up doing this a couple of times. I found the software I wanted to run, but couldn’t find any docker images of the latest versions, or simply couldn’t find an image anywhere.
Let’s look at ResourceSpace. Looks great. Love the idea, but the latest version I could find in docker hub was last pushed 2 years ago.
“Pushed” is the term for pushing you images to the registry, “pull” is the act of downloading the image, little tid bit for you.
I want the latest version of ResourceSpace, since the version in this image does not have the Google Vision plugin, which lets you run Facial and Test Recognition on all the images you upload. This feature is huge when you have hundreds of thousands of images an no metadata to tag them with. With this plugin, after Vision looks at the images, now you search for a purple brush, and only purple brushes come up in the search. All the text on the images also become searchable, product names, brand, net contents, descriptions, Google Vision grabs it all. So, we want this latest version. So, we take the dockerfile of the one last pushed 2 years ago, and change it. This one was pretty simple, just find where in the dockerfile they are downloading ResourceSpace, and change it so that it grabs the latest version. Happens right here:
RUN svn co http://svn.montala.net/svn/resourcespace .
With a bit of research, I find the latest releases here, and as I write this, it appears an even newer version is about to release. Nice! So, we change the old dockerfile by switching that
RUN command to:
RUN svn co http://svn.resourcespace.com/svn/rs/releases/8.3/ .
I went ahead and did it from version 7.9 to 8.3, and made them automated builds in docker hub, thus giving back to the community. You can find them here.
Self Service Password
After setting up an OpenLDAP container, I soon realized, no one wants a generic password I force on them, and I don’t want to have to bother changing their passwords for them. I need a portal for my users to take control of their own passwords. I found a piece of software just for this, Self Service Password, but of course there was no docker image to be found. So, I had to build one. I don’t claim to be an expert on this, by the way… This took some searching for the right base image, one that had all the prerequisites needed. I found a well built Apache2 Image, with PHP and Ubuntu 14.04, nimmis/apache-php5, and built off this image. From here, just need to make sure all the prereqs are installed and top it off with our software. My First almost fully built image, creecros/openldap-selfservicepw.