Skip to content

Docker compose setup to build & run Apereo CAS in Docker

Notifications You must be signed in to change notification settings

crpeck/cas-overlay-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CAS Docker Overlay

Uses gradle to build CAS 6.x

Docker Compose setup using a multi-stage build:

  • First stage builds a Docker image that:
  • Second stage runs CAS in a Docker container
    • copies the directory etc/cas into the container at /etc/cas
    • generates a self-signed keystore for CAS to use at startup
    • copies the cas.war file from the first stage
    • exposes port 8443
    • runs /usr/bin/java -jar cas.war (using the embedded Tocmat server)

To use

  • To build & run CAS in Docker type: docker-compose up --force-recreate

  • Open up a page at https://localhost:8443/cas/login and login as:

    • user: casuser
    • password: Mellon
  • Type ctrl-c to exit, then type this to cleanup: docker-compose down --rmi all

Notes

If you want to grab a copy of the cas.war file that is running in the container use the 'docker cp' command, for example:

wishbringer:~ $ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                    NAMES
79e44dd14c7e        dockercasdev_cas    "/usr/bin/java -ja..."   21 seconds ago      Up 20 seconds           0.0.0.0:8443->8443/tcp   dockercasdev_cas_1
6f5bc662213b        nginx               "nginx -g 'daemon ..."   5 days ago          Exited (0) 5 days ago                            webserver
de061f8c8aef        alpine              "env"                    5 days ago          Exited (0) 5 days ago                            amazing_feynman
4e3975361ef2        alpine              "ifconfig"               5 days ago          Exited (0) 5 days ago                            keen_jang
wishbringer:~ $ docker cp 79e44dd14c7e:/root/cas.war .
wishbringer:~ $ ls -l cas.war
-rw-r--r--  1 crpeck  staff  91251638 Aug 15 14:40 cas.war

The end result is an image of about 173MB that has a full implementation of CAS.

REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
casoverlaydocker_cas   latest              954457811c53        18 seconds ago      173MB

Proxy authentication

In order to get the proxy authentication working, you need to make sure that the container has imported your SSL certificate (self signed or not).

Your certificate needs to be setup for a local host on your machine.

Step 1

Create a docker-compose.override.yml file:

version: '2'
services:
  cas:
    extra_hosts:
      - "casclient:172.22.0.1"

Change casclient and 172.22.0.1 based on your host settings.

On my side casclient is the hostname of CAS client application and 172.22.0.1 is the IP of the host running Docker.

Step 2

Copy the SSL certificate from your application into etc/cas/config/certificate.pem.

The format of the certificate must be in PEM.

Step 3

docker-compose up

or

docker-compose up --force-recreate --build

References

Documentation
Issue Tracker
Mailing Lists
Chatroom
Blog

About

Docker compose setup to build & run Apereo CAS in Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published