Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.



Docker Pulls Docker Cloud Build Status

gRSShopper is a tool that aggregates, organizes and distributes resources to support online learning. Read more here:

Docker image is here:

The Docker image automatically updates following changes to this repository.

To run from Docker Image:

gRSShopper uses two containers, a server container and a database container. Before running docker-compose you need to download the SQL startup file and place it in the init directory; docker-compose will then load it into the generic database container.

curl --output  docker-compose.yml
mkdir init
curl --output init/gRSShopper-ple.sql
docker-compose up

OR, run from the GitHub repository:

Process: run docker-compose to create two Docker containers, one for the application and one for the database. Running it from GitHub will clone the files. Then and build the image and execute the build with the docker-compose command.

git clone
    (or git pull origin master if reloading the changed repo)
cd gRSShopper

docker-compose up

To run the MOOC Image:

As of today (May 5) I've simply dumped the MOOC SQL into the repo without testing or checking so expect it to break.

That said, it sets up exactly the same as the PLE, except you use the grsshopper-mooc.sql file instead of grsshopper-ple.

So, to run the MOOC from the Docker image, you'd run:

curl --output  docker-compose.yml
mkdir init
curl --output init/gRSShopper-mooc.sql
docker-compose up

To run it from the GitHub repository:

git clone

cd gRSShopper

rm init/grsshopper-ple.sql

mv mooc/grsshopper-mooc.sql init/grsshopper-mooc.sql

docker-compose up

Again, no guarantees with the MOOC database just yet. Also, if anyone has ideas for a more elegarnt way to set this up, I'm all ears.

Testing the server

Note that gRSShopper runs in SSL (on post 443) and requires that you access it using https.

https://[your domain] (should show gRSShopper start page)

https://[your domain]/cgi-bin/server_test.cgi (should show Perl test page)

Restart the Apache server

If Perl CGI isn't running properly, try:

docker exec -it gr1 /etc/init.d/apache2 reload

(you can't docker exec -it bb3 apache2ctl restart because it crashes the entire container - see )

( if you crash it, docker start bb3 )

Open a terminal in the container

docker exec -e TERM=xterm -i -t grsshopper_grsshopper_1 bash

(A lot of sites say docker exec -it gr1 bash but I find it generates an error. Also if you want to be able to use nano when entering a container, you will need to set -e TERM=xterm).

Start cron

Cron: cron starts automatically and runs in the gRSShopper container. if it ever stops (it shouldn't) you can enter the container and start it manually:

docker exec -e TERM=xterm -i -t grsshopper_grsshopper_1 bash
crontab /etc/cron.d/cronfile

The first command opens a terminal in the container. Then 'cron' starts cron, and the crontab loads instructions into the cron table. Exit closes the terminal in the container. Sorry if this doesn't work automatically.


I did the coding, etc., but here are some resources that really helped along the way - Maria db making backups with mysqldump - Fauria LAMP Docker image - Copying files into a container - Reclaim's cloud hosting service - Session management in Perl - Set Cookie - cpan Perl archive - CGI::Cookie - cloud management tool used by Reclaim - LAMP in containers - Mysql in containers - Stack Overflow - restart Apache without killing the container - changing a mysql password with perl - setting up mysql in Docker - cookies and Javascript - setting up a container, part 1 - setting up a container, part 2 - - setting up a container, part 3 - Using bcrypt to secure passwords in a Perl application - Using bcrypt to secure passwords in a Perl application - SHA 256 in Perl - working with and testing cookies - perl Sessions module - Perl sessions - Perl - Turn off indirect object notation - How to run a cron job in Docker - Help using Nano - Help using Nano - Setting up cron - PWD commands for Docker volumes - OERu Docker compase sample - Chris Chuck - How to Create a MySql Instance with Docker Compose - Docker from Scratch, Part 4: Compose and Volumes - spinner image


gRSShopper is a tool that aggregates, organizes and distributes resources to support online learning




No releases published


No packages published

Contributors 4