added: .gitignore to ignore .vagrant files
added: README.markdown with some instuctions
added: httpd Dockerfile

+# for a discussion of each configuration directive.
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do.  They're here only as hints or reminders.  If you are unsure
+# consult the online docs. You have been warned.
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path.  If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "logs/foo_log"
+# with ServerRoot set to "/opt/apache" will be interpreted by the
+# server as "/opt/apache/logs/foo_log".
+
+ServerTokens Prod
+ServerSignature Off
+TraceEnable Off
+#FileETag -INode
+FileETag MTime Size
+
+
+
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# Do not add a slash at the end of the directory path.  If you point
+# ServerRoot at a non-local disk, be sure to point the LockFile directive
+# at a local disk.  If you wish to share the same ServerRoot for multiple
+# httpd daemons, you will need to change at least LockFile and PidFile.
+#
+ServerRoot "/opt/apache"
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, instead of the default. See also the <VirtualHost>
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses.
+#
+#Listen 12.34.56.78:80
+Listen 80
+
+# This line requested by Paul Grave DEV-3480
+SetEnv CHRISTINA_ENV stage
+
+#
+# Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a DSO you
+# have to place corresponding `LoadModule' lines at this location so the
+# directives contained in it are actually available _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module modules/mod_foo.so
+#
+ # LoadModule fastcgi_module modules/mod_fastcgi.so
+
+#LoadModule php5_module        modules/libphp5.so
+#PHPINIDir "/opt/php-5.5.5/lib"
+#
+LoadModule authn_file_module modules/mod_authn_file.so
+#LoadModule authn_dbm_module modules/mod_authn_dbm.so
+#LoadModule authn_anon_module modules/mod_authn_anon.so
+#LoadModule authn_dbd_module modules/mod_authn_dbd.so
+LoadModule authn_default_module modules/mod_authn_default.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
+LoadModule authz_user_module modules/mod_authz_user.so
+#LoadModule authz_dbm_module modules/mod_authz_dbm.so
+#LoadModule authz_owner_module modules/mod_authz_owner.so
+LoadModule authz_default_module modules/mod_authz_default.so
+LoadModule auth_basic_module modules/mod_auth_basic.so
+#LoadModule auth_digest_module modules/mod_auth_digest.so
+#LoadModule dbd_module modules/mod_dbd.so
+#LoadModule dumpio_module modules/mod_dumpio.so
+#LoadModule reqtimeout_module modules/mod_reqtimeout.so
+#LoadModule ext_filter_module modules/mod_ext_filter.so
+LoadModule include_module modules/mod_include.so
+LoadModule filter_module modules/mod_filter.so
+#LoadModule substitute_module modules/mod_substitute.so
+LoadModule deflate_module modules/mod_deflate.so
+LoadModule log_config_module modules/mod_log_config.so
+#LoadModule log_forensic_module modules/mod_log_forensic.so
+#LoadModule logio_module modules/mod_logio.so
+LoadModule env_module modules/mod_env.so
+#LoadModule mime_magic_module modules/mod_mime_magic.so
+#LoadModule cern_meta_module modules/mod_cern_meta.so
+LoadModule expires_module modules/mod_expires.so
+LoadModule headers_module modules/mod_headers.so
+#LoadModule ident_module modules/mod_ident.so
+#LoadModule usertrack_module modules/mod_usertrack.so
+#LoadModule unique_id_module modules/mod_unique_id.so
+LoadModule setenvif_module modules/mod_setenvif.so
+#LoadModule version_module modules/mod_version.so
+LoadModule mime_module modules/mod_mime.so
+#LoadModule dav_module modules/mod_dav.so
+LoadModule status_module modules/mod_status.so
+#LoadModule autoindex_module modules/mod_autoindex.so
+LoadModule asis_module modules/mod_asis.so
+#LoadModule info_module modules/mod_info.so
+LoadModule cgi_module modules/mod_cgi.so
+#LoadModule dav_fs_module modules/mod_dav_fs.so
+#LoadModule vhost_alias_module modules/mod_vhost_alias.so
+LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule dir_module modules/mod_dir.so
+#LoadModule imagemap_module modules/mod_imagemap.so
+LoadModule actions_module modules/mod_actions.so
+#LoadModule speling_module modules/mod_speling.so
+LoadModule userdir_module modules/mod_userdir.so
+LoadModule alias_module modules/mod_alias.so
+LoadModule rewrite_module modules/mod_rewrite.so
+#LoadModule proxy_module modules/mod_proxy.so
+#LoadModule proxy_http_module modules/mod_proxy_http.so
+#LoadModule proxy_connect_module modules/mod_proxy_connect.so
+LoadModule fastcgi_module modules/mod_fastcgi.so
+
+
+# FPM / FastCGI
+FastCgiWrapper Off
+
+AddHandler php5-fcgi .php
+Action php5-fcgi /php5-fcgi
+Alias /php5-fcgi /opt/apache/cgi-bin/php5-fcgi
+FastCgiExternalServer /opt/apache/cgi-bin/php5-fcgi  -flush -host ${FCGI_PORT_9000_TCP_ADDR}:${FCGI_PORT_9000_TCP_PORT}  -pass-header Authorization -idle-timeout 300
+
+
+<IfModule !mpm_netware_module>
+<IfModule !mpm_winnt_module>
+#
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.
+#
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# It is usually good practice to create a dedicated user and group for
+# running httpd, as with most system services.
+#
+User httpd
+Group httpd
+
+</IfModule>
+</IfModule>
+
+# 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# <VirtualHost> definition.  These values also provide defaults for
+# any <VirtualHost> containers you may define later in the file.
+#
+# All of these directives may appear inside <VirtualHost> containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+#
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed.  This address appears on some server-generated pages, such
+# as error documents.  e.g. admin@your-domain.com
+#
+ServerAdmin $web.support@teamtalk.com
+
+#
+# ServerName gives the name and port that the server uses to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+#
+# If your host doesn't have a registered DNS name, enter its IP address here.
+#
+#ServerName www.example.com:80
+ServerName localhost:80
+
+#
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+#
+DocumentRoot "/opt/docroot"
+
+#
+# Each directory to which Apache has access can be configured with respect
+# to which services and features are allowed and/or disabled in that
+# directory (and its subdirectories).
+#
+# First, we configure the "default" to be a very restrictive set of
+# features.
+#
+<Directory />
+    Options FollowSymLinks
+    AllowOverride All
+    Order deny,allow
+#    Deny from all
+</Directory>
+
+#
+# Note that from this point forward you must specifically allow
+# particular features to be enabled - so if something's not working as
+# you might expect, make sure that you have specifically enabled it
+# below.
+#
+
+#
+# This should be changed to whatever you set DocumentRoot to.
+#
+<Directory "/opt/docroot">
+    DirectoryIndex index.php index.html
+    Order allow,deny
+    Allow from all
+</Directory>
+
+
+#
+# DirectoryIndex: sets the file that Apache will serve if a directory
+# is requested.
+#
+<IfModule dir_module>
+    DirectoryIndex index.php index.html
+</IfModule>
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+<FilesMatch "^\.ht">
+    Order allow,deny
+    Deny from all
+    Satisfy All
+</FilesMatch>
+
+#
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here.  If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog "logs/error_log"
+
+#
+# LogLevel: Control the number of messages logged to the error_log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+<IfModule log_config_module>
+    #
+    # The following directives define some format nicknames for use with
+    # a CustomLog directive (see below).
+    #
+    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T/%D" combined
+    LogFormat "%h %l %u %t \"%r\" %>s %b" common
+
+    <IfModule logio_module>
+      # You need to enable mod_logio.c to use %I and %O
+      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+    </IfModule>
+
+    #
+    # The location and format of the access logfile (Common Logfile Format).
+    # If you do not define any access logfiles within a <VirtualHost>
+    # container, they will be logged here.  Contrariwise, if you *do*
+    # define per-<VirtualHost> access logfiles, transactions will be
+    # logged therein and *not* in this file.
+    #
+    CustomLog "logs/access_log" common
+
+    #
+    # If you prefer a logfile with access, agent, and referer information
+    # (Combined Logfile Format) you can use the following directive.
+    #
+    #CustomLog "logs/access_log" combined
+</IfModule>
+
+<IfModule alias_module>
+    #
+    # Redirect: Allows you to tell clients about documents that used to
+    # exist in your server's namespace, but do not anymore. The client
+    # will make a new request for the document at its new location.
+    # Example:
+    # Redirect permanent /foo http://www.example.com/bar
+
+    #
+    # Alias: Maps web paths into filesystem paths and is used to
+    # access content that does not live under the DocumentRoot.
+    # Example:
+    # Alias /webpath /full/filesystem/path
+    #
+    # If you include a trailing / on /webpath then the server will
+    # require it to be present in the URL.  You will also likely
+    # need to provide a <Directory> section to allow access to
+    # the filesystem path.
+
+    #
+    # ScriptAlias: This controls which directories contain server scripts.
+    # ScriptAliases are essentially the same as Aliases, except that
+    # documents in the target directory are treated as applications and
+    # run by the server when requested rather than as documents sent to the
+    # client.  The same rules about trailing "/" apply to ScriptAlias
+    # directives as to Alias.
+    #
+    ScriptAlias /cgi-bin/ "/opt/apache/cgi-bin/"
+
+</IfModule>
+
+<IfModule cgid_module>
+    #
+    # ScriptSock: On threaded servers, designate the path to the UNIX
+    # socket used to communicate with the CGI daemon of mod_cgid.
+    #
+    #Scriptsock logs/cgisock
+</IfModule>
+
+#
+# "/opt/apache/cgi-bin" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+<Directory "/opt/apache/cgi-bin">
+    AllowOverride None
+    Options None
+    Order allow,deny
+    Allow from all
+</Directory>
+
+#
+# DefaultType: the default MIME type the server will use for a document
+# if it cannot otherwise determine one, such as from filename extensions.
+# If your server contains mostly text or HTML documents, "text/plain" is
+# a good value.  If most of your content is binary, such as applications
+# or images, you may want to use "application/octet-stream" instead to
+# keep browsers from trying to display binary files as though they are
+# text.
+#
+DefaultType text/plain
+
+<IfModule mime_module>
+    #
+    # TypesConfig points to the file containing the list of mappings from
+    # filename extension to MIME-type.
+    #
+    TypesConfig conf/mime.types
+
+    #
+    # AddType allows you to add to or override the MIME configuration
+    # file specified in TypesConfig for specific file types.
+    #
+    #AddType application/x-gzip .tgz
+    #
+    # AddEncoding allows you to have certain browsers uncompress
+    # information on the fly. Note: Not all browsers support this.
+    #
+    #AddEncoding x-compress .Z
+    #AddEncoding x-gzip .gz .tgz
+    #
+    # If the AddEncoding directives above are commented-out, then you
+    # probably should define those extensions to indicate media types:
+    #
+    AddType application/x-compress .Z
+    AddType application/x-gzip .gz .tgz
+
+    #
+    # AddHandler allows you to map certain file extensions to "handlers":
+    # actions unrelated to filetype. These can be either built into the server
+    # or added with the Action directive (see below)
+    #
+    # To use CGI scripts outside of ScriptAliased directories:
+    # (You will also need to add "ExecCGI" to the "Options" directive.)
+    #
+    #AddHandler cgi-script .cgi
+
+    # For type maps (negotiated resources):
+    #AddHandler type-map var
+
+    #
+    # Filters allow you to process content before it is sent to the client.
+    #
+    # To parse .shtml files for server-side includes (SSI):
+    # (You will also need to add "Includes" to the "Options" directive.)
+    #
+    #AddType text/html .shtml
+    #AddOutputFilter INCLUDES .shtml
+</IfModule>
+
+#
+# The mod_mime_magic module allows the server to use various hints from the
+# contents of the file itself to determine its type.  The MIMEMagicFile
+# directive tells the module where the hint definitions are located.
+#
+#MIMEMagicFile conf/magic
+
+#
+# Customizable error responses come in three flavors:
+# 1) plain text 2) local redirects 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# MaxRanges: Maximum number of Ranges in a request before
+# returning the entire resource, or 0 for unlimited
+# Default setting is to accept 200 Ranges
+#MaxRanges 0
+
+#
+# EnableMMAP and EnableSendfile: On systems that support it,
+# memory-mapping or the sendfile syscall is used to deliver
+# files.  This usually improves server performance, but must
+# be turned off when serving from networked-mounted
+# filesystems or if support for these functions is otherwise
+# broken on your system.
+#
+#EnableMMAP off
+#EnableSendfile off
+
+# Supplemental configuration
+#
+# The configuration files in the conf/extra/ directory can be
+# included to add extra features or to modify the default configuration of
+# the server, or you may simply copy their contents here and change as
+# necessary.
+
+# Server-pool management (MPM specific)
+#Include conf/extra/httpd-mpm.conf
+
+# Multi-language error messages
+#Include conf/extra/httpd-multilang-errordoc.conf
+
+# Fancy directory listings
+#Include conf/extra/httpd-autoindex.conf
+
+# Language settings
+#Include conf/extra/httpd-languages.conf
+
+# User home directories
+#Include conf/extra/httpd-userdir.conf
+
+# Real-time info on requests and configuration
+#Include conf/extra/httpd-info.conf
+
+# Virtual hosts
+#Include conf/extra/httpd-vhosts.conf
+
+# Local access to the Apache HTTP Server Manual
+#Include conf/extra/httpd-manual.conf
+
+# Distributed authoring and versioning (WebDAV)
+#Include conf/extra/httpd-dav.conf
+
+# Various default settings
+#Include conf/extra/httpd-default.conf
+
+# Secure (SSL/TLS) connections
+#Include conf/extra/httpd-ssl.conf
+#
+# Note: The following must must be present to support
+#       starting without SSL on platforms with no /dev/random equivalent
+#       but a statically compiled-in mod_ssl.
+#
+KeepAlive On
+MaxKeepAliveRequests 100
+KeepAliveTimeout 10
+
+NameVirtualHost *:80
+<VirtualHost *:80>
+        ServerName localhost
+        <Directory /opt/docroot>
+                Allow from all
+        </Directory>
+</VirtualHost>
+
+    <Directory "/export/home/xml">
+        AllowOverride None
+        Options FollowSymLinks Includes
+        Order allow,deny
+        Allow from all
+    </Directory>
+
+Alias /xml /export/home/xml
+
+Include /opt/apache/conf/vhosts/*
+<IfModule ssl_module>
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
+</IfModule>
+#<FilesMatch \.php$>
+#    SetHandler application/x-httpd-php
+#</FilesMatch>
+#<FilesMatch "\.phps$">
+#    SetHandler application/x-httpd-php-source
+#</FilesMatch>
diff --git a/resources/apache/conf/vhosts/skysports.conf b/resources/apache/conf/vhosts/skysports.conf
new file mode 100644
index 0000000..cdfe2f9
--- /dev/null
+++ b/resources/apache/conf/vhosts/skysports.conf
@@ -0,0 +1,95 @@
+<VirtualHost *:80>
+    ServerAdmin dl365mediawebsupport@bskyb.com
+    DocumentRoot "/opt/docroot/skysports/src"
+    ServerName my.skysports.com
+    ServerAlias www1.skysports.com
+	ServerAlias ss.*.xip.io
+    ErrorDocument 404 /404
+    ErrorLog "logs/my.skysports.com.error_log"
+    CustomLog "logs/my.skysports.com.access_log" combined
+
+    #alias to /shared/ - trailing slash left on as
+    #any references should be items/directories below shared
+    Alias /shared /opt/docroot/shared
+
+    DirectoryIndex index.html index.php
+
+	AddHandler php5-fcgi-skysports .php
+	Action php5-fcgi-skysports /php5-fcgi-skysports
+	Alias /php5-fcgi-skysports /var/run/php5-fcgi-skysports
+	FastCgiExternalServer /var/run/php5-fcgi-skysports -flush -host ${FCGI_PORT_9000_TCP_ADDR}:${FCGI_PORT_9000_TCP_PORT} -pass-header Authorization -idle-timeout 300
+
+	<IfModule mod_expires.c>
+		ExpiresActive on
+                <FilesMatch ".*css|.*js">
+                   ExpiresDefault "access plus 60 min"
+                </FilesMatch>
+                <FilesMatch ".*jpg|.*gif|.*png|.*svg">
+                   ExpiresDefault A14515200
+                </FilesMatch>
+
+		<FilesMatch ".*ttf|.*woff">
+			ExpiresDefault A14515200
+		</FilesMatch>
+
+		<Location /fonts>
+			ExpiresDefault A14515200
+		</Location>
+
+		<Location /static>
+			ExpiresDefault A14515200
+		</Location>
+
+		<Location /live-score-centre/static>
+			ExpiresDefault A14515200
+		</Location>
+
+		<LocationMatch /formula1/racecontrol/F1MediaCentre/ClientBin/.*?\.xap>
+                        ExpiresDefault A86400
+                </LocationMatch>
+
+                <LocationMatch /formula1/racecontrol/F1MediaCentre/ClientBin/.*?\.zip>
+                        ExpiresDefault A14515200
+                </LocationMatch>
+
+	</IfModule>
+
+
+<directory /opt/docroot/skysports>
+AddOutputFilterByType DEFLATE text/html text/plain text/xml
+
+#####################################
+####### Redirects / Rewrites ########
+#####################################
+
+<IfModule mod_rewrite.c>
+AllowOverride All
+</IfModule>
+##Options +FollowSymlinks
+RewriteEngine on
+##set the default starting point for all rules
+##RewriteBase /skysports/
+
+# include "/opt/live-vhosts/my.skysports.com.inc"
+
+</directory>
+
+#scorecentre folder aliasing so we can access scorecentre project via skysports domain
+Alias /live-score-centre /opt/docroot/scorecentre/public
+<Directory /opt/docroot/scorecentre/public>
+                Order allow,deny
+                Allow from all
+                SetEnv SC_DOCROOT /opt/docroot/scorecentre
+                <IfModule mod_rewrite.c>
+                                RewriteEngine on
+                                RewriteBase /live-score-centre/
+                                # redirect to  index.php for each request unless the file exists.
+                                RewriteCond %{REQUEST_FILENAME} -s [OR]
+                                RewriteCond %{REQUEST_FILENAME} -l [OR]
+                                RewriteCond %{REQUEST_FILENAME} -d
+                                RewriteRule ^.*$ - [NC,L,QSA]
+                                RewriteRule ^.*$ index.php [NC,L,QSA]
+                </IfModule>
+</Directory>
+
+</VirtualHost>
\ No newline at end of file
diff --git a/resources/base/Dockerfile b/resources/base/Dockerfile
index 9b2f23d..e4ca424 100644
--- a/resources/base/Dockerfile
+++ b/resources/base/Dockerfile
@@ -1,12 +1,15 @@
-FROM centos
+FROM centos:centos6

 RUN rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

-RUN yum -y update
+RUN yum -y update &&  yum install -y \
+    libxml2-devel \
+    libcurl-devel \
+    enchant-devel \
+    libpng-devel \
+    telnet \
+    git
+
 RUN yum groupinstall -y 'Development Tools'
-RUN yum install -y libxml2-devel
-RUN yum install -y libcurl-devel
-RUN yum install -y enchant-devel
-RUN yum install -y libpng-devel

-RUN yum install -y git
+RUN ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
diff --git a/resources/glassfish/Dockerfile b/resources/glassfish/Dockerfile
new file mode 100644
index 0000000..1d0df14
--- /dev/null
+++ b/resources/glassfish/Dockerfile
@@ -0,0 +1,58 @@
+# Glassfish4 + Oracle JDK 1.7.0_40
+#
+# VERSION               0.0.4
+
+FROM      ssdm-docker:5000/paulgrav/base
+MAINTAINER Paul Grave "paul.grave@bskyb.com"
+
+# USER glassfish
+
+WORKDIR /usr/local
+
+# Install JDK
+RUN curl -Lk -O -H "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz
+RUN tar zxvf jdk-7u65-linux-x64.tar.gz
+RUN rm -f jdk-7u65-linux-x64.tar.gz
+
+# Install Glassfish
+RUN curl -Lk -O -H "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.java.net/glassfish/3.1.2.2/release/glassfish-3.1.2.2.zip"
+RUN unzip glassfish-3.1.2.2.zip && rm glassfish-3.1.2.2.zip
+
+# Set some envs
+ENV JAVA_HOME /usr/local/jdk1.7.0_65
+ENV GF_HOME /usr/local/glassfish3
+ENV PATH $PATH:$JAVA_HOME/bin:$GF_HOME/bin
+
+# Install Jersey
+RUN curl -o $GF_HOME/glassfish/domains/domain1/lib/jersey-bundle-1.18.jar http://repo1.maven.org/maven2/com/sun/jersey/jersey-bundle/1.18/jersey-bundle-1.18.jar
+RUN rm $GF_HOME/glassfish/modules/jersey*.jar
+RUN curl -o $GF_HOME/glassfish/domains/domain1/lib/asm-3.1.jar http://repo1.maven.org/maven2/asm/asm/3.1/asm-3.1.jar
+
+
+# Install OJDBC
+COPY ojdbc6.jar $GF_HOME/glassfish/domains/domain1/lib/ojdbc6.jar
+
+COPY domain.xml $GF_HOME/glassfish/domains/domain1/config/
+
+# Final Glassfish Prep
+RUN chmod +x $GF_HOME/bin/*
+RUN echo "admin;{SSHA256}80e0NeB6XBWXsIPa7pT54D9JZ5DR5hGQV1kN1OAsgJePNXY6Pl0EIw==;asadmin" > $GF_HOME/glassfish/domains/domain1/config/admin-keyfile
+RUN echo "AS_ADMIN_PASSWORD=glassfish" > pwdfile
+RUN \
+  $GF_HOME/bin/asadmin start-domain && \
+  $GF_HOME/bin/asadmin --user admin --passwordfile pwdfile enable-secure-admin && \
+  $GF_HOME/bin/asadmin stop-domain
+
+# Download and install SHAKIRA
+RUN mkdir -p $GF_HOME/glassfish/domains/domain1/autodeploy/ && \
+    curl -Lk -o $GF_HOME/glassfish/domains/domain1/autodeploy/SHAKIRA.war http://devbuild.localnet:8080/jenkins/job/Shakira/3938/artifact/dev/build/web/war/SHAKIRA.war
+
+VOLUME ["$GF_HOME/glassfish/domains/domain1/autodeploy/"]
+
+
+
+# docker run -e _JAVA_OPTIONS='-Dssdm.jdbc.url=jdbc:oracle:thin:@ora-dev-a.localnet:1521:DEV1' -i -p 8080:8080 -t ssdm-docker:5000/paulgrav/glassfish
+
+# PORT FORWARD THE ADMIN PORT, HTTP LISTENER-1 PORT, HTTPS LISTENER PORT, PURE JMX CLIENTS PORT, MESSAGE QUEUE PORT, IIOP PORT, IIOP/SSL PORT, IIOP/SSL PORT WITH MUTUAL AUTHENTICATION
+EXPOSE 4848 8080
+CMD ["asadmin", "start-domain", "-v"]
\ No newline at end of file
diff --git a/resources/glassfish/domain.xml b/resources/glassfish/domain.xml
new file mode 100644
index 0000000..b4a77ec
--- /dev/null
+++ b/resources/glassfish/domain.xml
@@ -0,0 +1,572 @@
+<domain log-root="${com.sun.aas.instanceRoot}/logs" application-root="${com.sun.aas.instanceRoot}/applications" version="5">
+  <system-applications>
+    <application context-root="" location="${com.sun.aas.installRootURI}/lib/install/applications/__admingui" name="__admingui" directory-deployed="true" object-type="system-admin">
+      <module name="__admingui">
+        <engine sniffer="web"></engine>
+        <engine sniffer="security"></engine>
+      </module>
+    </application>
+  </system-applications>
+  <applications></applications>
+  <resources>
+    <jdbc-resource pool-name="__TimerPool" jndi-name="jdbc/__TimerPool" object-type="system-admin"></jdbc-resource>
+    <jdbc-resource pool-name="DerbyPool" jndi-name="jdbc/__default"></jdbc-resource>
+    <jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.EmbeddedXADataSource" res-type="javax.sql.XADataSource" name="__TimerPool">
+      <property name="databaseName" value="${com.sun.aas.instanceRoot}/lib/databases/ejbtimer"></property>
+      <property name="connectionAttributes" value=";create=true"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="org.apache.derby.jdbc.ClientDataSource" res-type="javax.sql.DataSource" name="DerbyPool">
+      <property name="PortNumber" value="1527"></property>
+      <property name="Password" value="APP"></property>
+      <property name="User" value="APP"></property>
+      <property name="serverName" value="localhost"></property>
+      <property name="DatabaseName" value="sun-appserv-samples"></property>
+      <property name="connectionAttributes" value=";create=true"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_advertPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="absynthe"></property>
+      <property name="User" value="advert"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_all_sportsPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="alcohol"></property>
+      <property name="User" value="all_sports"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_blinkedPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="bacardi"></property>
+      <property name="User" value="blinked"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_competitionsPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="tea"></property>
+      <property name="User" value="competitions"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_contentPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="cinzano"></property>
+      <property name="User" value="content"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_cricketPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="campari"></property>
+      <property name="User" value="cricket"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_cyclingPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="cognac"></property>
+      <property name="User" value="cycling"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_dogsPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="catford"></property>
+      <property name="User" value="dogs"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_footballPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="fruitjuice"></property>
+      <property name="User" value="football"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_f1Pool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="flamingmo"></property>
+      <property name="User" value="f1"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_genericPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="ginfizz"></property>
+      <property name="User" value="generic"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_golfPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="grievous"></property>
+      <property name="User" value="golf"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_horsePool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="hoegarden"></property>
+      <property name="User" value="horse"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_icehockeyPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="icedtea"></property>
+      <property name="User" value="ice_hockey"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_interactivePool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="icedtea"></property>
+      <property name="User" value="interactive"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_marketPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="Fr33milton"></property>
+      <property name="User" value="market"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_motor_racingPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="maltwhisky"></property>
+      <property name="User" value="motor_racing"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_rugbyleaguePool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="rocketfuel"></property>
+      <property name="User" value="rugby_league"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_rugbyunionPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="rustynail"></property>
+      <property name="User" value="rugby_union"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="8" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" connection-leak-timeout-in-seconds="30" steady-pool-size="0" name="oracle-thin_shakiraPool" statement-timeout-in-seconds="29" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="schnapps"></property>
+      <property name="User" value="shakira_vb1"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_speedwayPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="squashedfrog"></property>
+      <property name="User" value="speedway"></property>
+    </jdbc-connection-pool>
+    <jdbc-connection-pool validation-table-name="dual" pool-resize-quantity="1" datasource-classname="oracle.jdbc.pool.OracleDataSource" max-pool-size="2" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" steady-pool-size="0" name="oracle-thin_tennisPool" is-connection-validation-required="true">
+      <property name="URL" value="${ssdm.jdbc.url}"></property>
+      <property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
+      <property name="Password" value="twisted"></property>
+      <property name="User" value="tennis"></property>
+    </jdbc-connection-pool>
+    <jdbc-resource pool-name="oracle-thin_genericPool" jndi-name="GENERIC"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_advertPool" jndi-name="ADVERT"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_interactivePool" jndi-name="INTERACTIVE"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_footballPool" jndi-name="FOOTBALL"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_f1Pool" jndi-name="F1"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_cricketPool" jndi-name="CRICKET"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_marketPool" jndi-name="MARKET"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_competitionsPool" jndi-name="COMPETITIONS"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_blinkedPool" jndi-name="BLINKED"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_horsePool" jndi-name="HORSE"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_motor_racingPool" jndi-name="MOTOR_RACING"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_cyclingPool" jndi-name="CYCLING"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_golfPool" jndi-name="GOLF"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_all_sportsPool" jndi-name="ALL_SPORTS"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_rugbyleaguePool" jndi-name="RUGBY_LEAGUE"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_rugbyunionPool" jndi-name="RUGBY_UNION"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_tennisPool" jndi-name="TENNIS"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_contentPool" jndi-name="CONTENT"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_dogsPool" jndi-name="DOGS"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_shakiraPool" jndi-name="SHAKIRA"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_icehockeyPool" jndi-name="ICEHOCKEY"></jdbc-resource>
+    <jdbc-resource pool-name="oracle-thin_speedwayPool" jndi-name="SPEEDWAY"></jdbc-resource>
+  </resources>
+  <servers>
+    <server name="server" config-ref="server-config">
+      <application-ref ref="__admingui" virtual-servers="__asadmin"></application-ref>
+      <resource-ref ref="jdbc/__TimerPool"></resource-ref>
+      <resource-ref ref="jdbc/__default"></resource-ref>
+    </server>
+  </servers>
+  <nodes>
+    <node node-host="localhost" name="localhost-domain1" type="CONFIG" install-dir="${com.sun.aas.productRoot}"></node>
+  </nodes>
+  <configs>
+    <config name="server-config">
+      <http-service>
+        <access-log></access-log>
+        <virtual-server id="server" network-listeners="http-listener-1,http-listener-2"></virtual-server>
+        <virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
+      </http-service>
+      <iiop-service>
+        <orb use-thread-pool-ids="thread-pool-1"></orb>
+        <iiop-listener port="3700" id="orb-listener-1" address="0.0.0.0" lazy-init="true"></iiop-listener>
+        <iiop-listener port="3820" id="SSL" address="0.0.0.0" security-enabled="true">
+          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
+        </iiop-listener>
+        <iiop-listener port="3920" id="SSL_MUTUALAUTH" address="0.0.0.0" security-enabled="true">
+          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
+        </iiop-listener>
+      </iiop-service>
+      <admin-service system-jmx-connector-name="system" type="das-and-server">
+        <jmx-connector port="8686" address="0.0.0.0" security-enabled="false" auth-realm-name="admin-realm" name="system"></jmx-connector>
+        <property name="adminConsoleContextRoot" value="/admin"></property>
+        <property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
+        <property name="ipsRoot" value="${com.sun.aas.installRoot}/.."></property>
+        <das-config></das-config>
+      </admin-service>
+      <connector-service></connector-service>
+      <web-container>
+        <session-config>
+          <session-manager>
+            <manager-properties></manager-properties>
+            <store-properties></store-properties>
+          </session-manager>
+          <session-properties></session-properties>
+        </session-config>
+      </web-container>
+      <ejb-container session-store="${com.sun.aas.instanceRoot}/session-store">
+        <ejb-timer-service></ejb-timer-service>
+      </ejb-container>
+      <mdb-container></mdb-container>
+      <jms-service default-jms-host="default_JMS_host">
+        <jms-host host="localhost" name="default_JMS_host"></jms-host>
+      </jms-service>
+      <security-service>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
+          <property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
+          <property name="jaas-context" value="fileRealm"></property>
+        </auth-realm>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
+          <property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
+          <property name="jaas-context" value="fileRealm"></property>
+        </auth-realm>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
+        <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+          <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
+        </jacc-provider>
+        <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
+        <audit-module classname="com.sun.enterprise.security.Audit" name="default">
+          <property name="auditOn" value="false"></property>
+        </audit-module>
+        <message-security-config auth-layer="SOAP">
+          <provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="dynamic.username.password" value="false"></property>
+            <property name="debug" value="false"></property>
+          </provider-config>
+          <provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="dynamic.username.password" value="false"></property>
+            <property name="debug" value="false"></property>
+            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
+          </provider-config>
+          <provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="debug" value="false"></property>
+          </provider-config>
+          <provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="debug" value="false"></property>
+            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
+          </provider-config>
+        </message-security-config>
+        <message-security-config auth-layer="HttpServlet">
+          <provider-config provider-type="server" provider-id="GFConsoleAuthModule" class-name="org.glassfish.admingui.common.security.AdminConsoleAuthModule">
+            <request-policy auth-source="sender"></request-policy>
+            <response-policy></response-policy>
+            <property name="restAuthURL" value="http://localhost:${ADMIN_LISTENER_PORT}/management/sessions"></property>
+            <property name="loginPage" value="/login.jsf"></property>
+            <property name="loginErrorPage" value="/loginError.jsf"></property>
+          </provider-config>
+        </message-security-config>
+        <property name="default-digest-algorithm" value="SHA-256"></property>
+      </security-service>
+      <transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs"></transaction-service>
+      <java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="" classpath-suffix="">
+        <jvm-options>-XX:MaxPermSize=1024m</jvm-options>
+        <jvm-options>-XX:+UseG1GC</jvm-options>
+        <jvm-options>-XX:MaxGCPauseMillis=2000</jvm-options>
+        <jvm-options>-XX:+DisableExplicitGC</jvm-options>
+        <jvm-options>-server</jvm-options>
+        <jvm-options>-Djava.awt.headless=true</jvm-options>
+        <jvm-options>-Djavax.management.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder</jvm-options>
+        <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
+        <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
+        <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
+        <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
+        <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
+        <jvm-options>-Xmx512m</jvm-options>
+        <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
+        <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
+        <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
+        <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
+        <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
+        <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.port=6666</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
+        <jvm-options>-Dgosh.args=--nointeractive</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.log.level=2</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
+      </java-config>
+      <network-config>
+        <protocols>
+          <protocol name="http-listener-1">
+            <http default-virtual-server="server" max-connections="250">
+              <file-cache></file-cache>
+            </http>
+          </protocol>
+          <protocol security-enabled="true" name="http-listener-2">
+            <http default-virtual-server="server" max-connections="250">
+              <file-cache></file-cache>
+            </http>
+            <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
+          </protocol>
+          <protocol name="admin-listener">
+            <http default-virtual-server="__asadmin" max-connections="250" encoded-slash-enabled="true">
+              <file-cache></file-cache>
+            </http>
+          </protocol>
+        </protocols>
+        <network-listeners>
+          <network-listener port="8080" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
+          <network-listener port="8181" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
+          <network-listener port="4848" protocol="admin-listener" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
+        </network-listeners>
+        <transports>
+          <transport name="tcp"></transport>
+        </transports>
+      </network-config>
+      <thread-pools>
+        <thread-pool name="admin-thread-pool" max-thread-pool-size="50" max-queue-size="256"></thread-pool>
+        <thread-pool name="http-thread-pool" max-thread-pool-size="20"></thread-pool>
+        <thread-pool name="thread-pool-1" max-thread-pool-size="200"></thread-pool>
+      </thread-pools>
+      <monitoring-service>
+        <module-monitoring-levels></module-monitoring-levels>
+      </monitoring-service>
+      <group-management-service>
+        <failure-detection></failure-detection>
+      </group-management-service>
+    </config>
+    <config name="default-config">
+      <http-service>
+        <access-log></access-log>
+        <virtual-server id="server" network-listeners="http-listener-1, http-listener-2">
+          <property name="default-web-xml" value="${com.sun.aas.instanceRoot}/config/default-web.xml"></property>
+        </virtual-server>
+        <virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
+      </http-service>
+      <iiop-service>
+        <orb use-thread-pool-ids="thread-pool-1"></orb>
+        <iiop-listener port="${IIOP_LISTENER_PORT}" id="orb-listener-1" address="0.0.0.0"></iiop-listener>
+        <iiop-listener port="${IIOP_SSL_LISTENER_PORT}" id="SSL" address="0.0.0.0" security-enabled="true">
+          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
+        </iiop-listener>
+        <iiop-listener port="${IIOP_SSL_MUTUALAUTH_PORT}" id="SSL_MUTUALAUTH" address="0.0.0.0" security-enabled="true">
+          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
+        </iiop-listener>
+      </iiop-service>
+      <admin-service system-jmx-connector-name="system">
+        <jmx-connector port="${JMX_SYSTEM_CONNECTOR_PORT}" address="0.0.0.0" security-enabled="false" auth-realm-name="admin-realm" name="system"></jmx-connector>
+        <property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
+        <das-config></das-config>
+      </admin-service>
+      <web-container>
+        <session-config>
+          <session-manager>
+            <manager-properties></manager-properties>
+            <store-properties></store-properties>
+          </session-manager>
+          <session-properties></session-properties>
+        </session-config>
+      </web-container>
+      <ejb-container session-store="${com.sun.aas.instanceRoot}/session-store">
+        <ejb-timer-service></ejb-timer-service>
+      </ejb-container>
+      <mdb-container></mdb-container>
+      <jms-service addresslist-behavior="priority" default-jms-host="default_JMS_host">
+        <jms-host port="${JMS_PROVIDER_PORT}" host="localhost" name="default_JMS_host"></jms-host>
+      </jms-service>
+      <log-service log-rotation-limit-in-bytes="2000000" file="${com.sun.aas.instanceRoot}/logs/server.log">
+        <module-log-levels></module-log-levels>
+      </log-service>
+      <security-service>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
+          <property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
+          <property name="jaas-context" value="fileRealm"></property>
+        </auth-realm>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
+          <property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
+          <property name="jaas-context" value="fileRealm"></property>
+        </auth-realm>
+        <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
+        <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+          <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
+        </jacc-provider>
+        <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
+        <audit-module classname="com.sun.enterprise.security.Audit" name="default">
+          <property name="auditOn" value="false"></property>
+        </audit-module>
+        <message-security-config auth-layer="SOAP">
+          <provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="dynamic.username.password" value="false"></property>
+            <property name="debug" value="false"></property>
+          </provider-config>
+          <provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="dynamic.username.password" value="false"></property>
+            <property name="debug" value="false"></property>
+            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
+          </provider-config>
+          <provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="debug" value="false"></property>
+          </provider-config>
+          <provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
+            <request-policy auth-source="content"></request-policy>
+            <response-policy auth-source="content"></response-policy>
+            <property name="encryption.key.alias" value="s1as"></property>
+            <property name="signature.key.alias" value="s1as"></property>
+            <property name="debug" value="false"></property>
+            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
+          </provider-config>
+        </message-security-config>
+      </security-service>
+      <transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs" automatic-recovery="true"></transaction-service>
+      <diagnostic-service></diagnostic-service>
+      <java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${JAVA_DEBUGGER_PORT}" system-classpath="" classpath-suffix="">
+        <jvm-options>-XX:MaxPermSize=192m</jvm-options>
+        <jvm-options>-XX:PermSize=64m</jvm-options>
+        <jvm-options>-server</jvm-options>
+        <jvm-options>-Djava.awt.headless=true</jvm-options>
+        <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
+        <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
+        <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
+        <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
+        <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
+        <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
+        <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
+        <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
+        <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
+        <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
+        <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
+        <jvm-options>-XX:NewRatio=2</jvm-options>
+        <jvm-options>-Xmx512m</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
+        <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
+        <jvm-options>-Dgosh.args=--noshutdown -c noop=true</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.log.level=3</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
+        <jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
+      </java-config>
+      <availability-service>
+        <web-container-availability></web-container-availability>
+        <ejb-container-availability sfsb-store-pool-name="jdbc/hastore"></ejb-container-availability>
+        <jms-availability></jms-availability>
+      </availability-service>
+      <network-config>
+        <protocols>
+          <protocol name="http-listener-1">
+            <http default-virtual-server="server">
+              <file-cache></file-cache>
+            </http>
+          </protocol>
+          <protocol security-enabled="true" name="http-listener-2">
+            <http default-virtual-server="server">
+              <file-cache></file-cache>
+            </http>
+            <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
+          </protocol>
+          <protocol name="admin-listener">
+            <http default-virtual-server="__asadmin" max-connections="250">
+              <file-cache></file-cache>
+            </http>
+          </protocol>
+          <protocol security-enabled="true" name="sec-admin-listener">
+            <http default-virtual-server="__asadmin" encoded-slash-enabled="true">
+              <file-cache></file-cache>
+            </http>
+            <ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="glassfish-instance"></ssl>
+          </protocol>
+          <protocol name="admin-http-redirect">
+            <http-redirect secure="true"></http-redirect>
+          </protocol>
+          <protocol name="pu-protocol">
+            <port-unification>
+              <protocol-finder protocol="sec-admin-listener" name="http-finder" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
+              <protocol-finder protocol="admin-http-redirect" name="admin-http-redirect" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
+            </port-unification>
+          </protocol>
+        </protocols>
+        <network-listeners>
+          <network-listener port="${HTTP_LISTENER_PORT}" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
+          <network-listener port="${HTTP_SSL_LISTENER_PORT}" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
+          <network-listener port="${ASADMIN_LISTENER_PORT}" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="http-thread-pool"></network-listener>
+        </network-listeners>
+        <transports>
+          <transport name="tcp"></transport>
+        </transports>
+      </network-config>
+      <thread-pools>
+        <thread-pool name="http-thread-pool"></thread-pool>
+        <thread-pool max-thread-pool-size="200" name="thread-pool-1"></thread-pool>
+        <thread-pool name="admin-thread-pool" max-thread-pool-size="50" max-queue-size="256"></thread-pool>
+      </thread-pools>
+      <group-management-service>
+        <failure-detection></failure-detection>
+      </group-management-service>
+      <management-rules></management-rules>
+      <system-property name="ASADMIN_LISTENER_PORT" value="24848"></system-property>
+      <system-property name="HTTP_LISTENER_PORT" value="28080"></system-property>
+      <system-property name="HTTP_SSL_LISTENER_PORT" value="28181"></system-property>
+      <system-property name="JMS_PROVIDER_PORT" value="27676"></system-property>
+      <system-property name="IIOP_LISTENER_PORT" value="23700"></system-property>
+      <system-property name="IIOP_SSL_LISTENER_PORT" value="23820"></system-property>
+      <system-property name="IIOP_SSL_MUTUALAUTH_PORT" value="23920"></system-property>
+      <system-property name="JMX_SYSTEM_CONNECTOR_PORT" value="28686"></system-property>
+      <system-property name="OSGI_SHELL_TELNET_PORT" value="26666"></system-property>
+      <system-property name="JAVA_DEBUGGER_PORT" value="29009"></system-property>
+      <monitoring-service>
+        <module-monitoring-levels></module-monitoring-levels>
+      </monitoring-service>
+      <connector-service></connector-service>
+    </config>
+  </configs>
+  <property name="administrative.domain.name" value="domain1"></property>
+  <secure-admin special-admin-indicator="3047aff3-3214-4ac9-aa5e-a5dad78b2eea">
+    <secure-admin-principal dn="CN=localhost,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
+    <secure-admin-principal dn="CN=localhost-instance,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
+  </secure-admin>
+  <load-balancers></load-balancers>
+  <lb-configs></lb-configs>
+  <clusters></clusters>
+</domain>
\ No newline at end of file
diff --git a/resources/glassfish/ojdbc6.jar b/resources/glassfish/ojdbc6.jar
new file mode 100644
index 0000000..3977122
Binary files /dev/null and b/resources/glassfish/ojdbc6.jar differ
diff --git a/resources/jboss/Dockerfile b/resources/jboss/Dockerfile
new file mode 100644
index 0000000..9af03ad
--- /dev/null
+++ b/resources/jboss/Dockerfile
@@ -0,0 +1,28 @@
+# Glassfish4 + Oracle JDK 1.7.0_40
+#
+# VERSION               0.0.4
+
+FROM      paulgrav/base
+MAINTAINER Paul Grave "paul.grave@bskyb.com"
+
+WORKDIR /usr/local
+
+RUN curl -Lk -O -H "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz
+RUN curl -Lk -O -H "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip"
+
+RUN tar zxvf jdk-7u65-linux-x64.tar.gz
+RUN rm -f jdk-7u65-linux-x64.tar.gz
+RUN unzip jboss-as-7.1.1.Final.zip
+RUN rm -f jboss-as-7.1.1.Final.zip
+
+ENV JAVA_HOME /usr/local/jdk1.7.0_65
+
+ENV JB_HOME /usr/local/jboss-as-7.1.1.Final
+
+ENV PATH $PATH:$JAVA_HOME/bin:$JB_HOME/bin
+
+# PORT FORWARD THE ADMIN PORT, HTTP LISTENER-1 PORT, HTTPS LISTENER PORT, PURE JMX CLIENTS PORT, MESSAGE QUEUE PORT, IIOP PORT, IIOP/SSL PORT, IIOP/SSL PORT WITH MUTUAL AUTHENTICATION
+EXPOSE 9999 8080 4447 9990
+
+CMD ["standalone.sh"]
+
diff --git a/resources/phpfpm/Dockerfile b/resources/phpfpm/Dockerfile
index 47d68dc..f9bdf8c 100644
--- a/resources/phpfpm/Dockerfile
+++ b/resources/phpfpm/Dockerfile
@@ -1,25 +1,15 @@
 FROM paulgrav/base

-ENV PHP_VERSION 5.5.11
-ENV PHP_IMAGICK_VERSION 3.1.2
-ENV PHP_MCRYPT_FILTER_VERSION 0.1.0
-ENV PHP_MONGO_VERSION 1.4.5
-ENV PHP_OAUTH_VERSION 1.2.3
-ENV PHP_REDIS_VERSION 2.2.4
-ENV PHP_XCACHE_VERSION 3.1.0
-
 RUN useradd httpd

-ADD php-fpm /etc/init.d/php-fpm
 ADD php.ini /opt/php/etc/php.ini
 ADD php-fpm.conf /opt/php/etc/php-fpm.conf

 RUN chown httpd:httpd /opt/php/etc/php-fpm.conf
-RUN chown httpd:httpd /etc/init.d/php-fpm
 RUN chown httpd:httpd /opt/php/etc/php.ini

 WORKDIR /tmp
-RUN curl http://uk1.php.net/distributions/php-$PHP_VERSION.tar.bz2 | tar xjvf -
+RUN curl http://uk1.php.net/distributions/php-5.5.11.tar.bz2 | tar xjvf -
 RUN yum -y update
 RUN yum groupinstall -y 'Development Tools'
 RUN yum install -y libxml2-devel
@@ -69,12 +59,21 @@ RUN make install
 WORKDIR /tmp
 RUN git clone https://github.com/nicolasff/phpredis.git
 WORKDIR /tmp/phpredis
-RUN git checkout $PHP_REDIS_VERSION
+RUN git checkout 2.2.5
 RUN /opt/php/bin/phpize
 RUN ./configure --with-php-config=/opt/php/bin/php-config
 RUN make install

 WORKDIR /tmp
+RUN curl http://pecl.php.net/get/apcu-4.0.4.tgz | tar xzvf -
+WORKDIR /tmp/apcu-4.0.4
+RUN /opt/php/bin/phpize
+RUN ./configure --with-php-config=/opt/php/bin/php-config
+RUN make install
+
+
+
+WORKDIR /tmp
 RUN curl http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.bz2 | tar xjvf -
 WORKDIR /tmp/xcache-3.1.0
 RUN /opt/php/bin/phpize
diff --git a/resources/phpfpm/php-fpm b/resources/phpfpm/php-fpm
deleted file mode 100644
index 7cb5763..0000000
--- a/resources/phpfpm/php-fpm
+++ /dev/null
@@ -1,112 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          php-5.3.24-fpm
-# Required-Start:    $all
-# Required-Stop:     $all
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: starts php-5.3.24-fpm
-# Description:       starts the PHP FastCGI Process Manager daemon
-### END INIT INFO
-php_fpm_BIN=/opt/php/sbin/php-fpm
-php_fpm_CONF=/opt/php/etc/php-fpm.conf
-php_fpm_INI=/opt/php/etc/php.ini
-php_fpm_PID=/var/run/php-fpm.pid
-php_opts=" -c $php_fpm_INI -y $php_fpm_CONF"
-
-wait_for_pid () {
-        try=0
-        while test $try -lt 35 ; do
-                case "$1" in
-                        'created')
-                        if [ -f "$2" ] ; then
-                                try=''
-                                break
-                        fi
-                        ;;
-                        'removed')
-                        if [ ! -f "$2" ] ; then
-                                try=''
-                                break
-                        fi
-                        ;;
-                esac
-                echo -n .
-                try=`expr $try + 1`
-                sleep 1
-        done
-}
-case "$1" in
-        start)
-                echo -n "Starting php-fpm "
-                $php_fpm_BIN $php_opts
-                if [ "$?" != 0 ] ; then
-                        echo " failed"
-                        exit 1
-                fi
-                wait_for_pid created $php_fpm_PID
-                if [ -n "$try" ] ; then
-                        echo " failed"
-                        exit 1
-                else
-                        echo " done"
-                fi
-        ;;
-        stop)
-                echo -n "Gracefully shutting down php-fpm "
-                if [ ! -r $php_fpm_PID ] ; then
-                        echo "warning, no pid file found - php-fpm is not running ?"
-                        exit 1
-                fi
-                kill -QUIT `cat $php_fpm_PID`
-                wait_for_pid removed $php_fpm_PID
-                if [ -n "$try" ] ; then
-                        echo " failed. Use force-exit"
-                        exit 1
-                else
-                        echo " done"
-                       echo " done"
-                fi
-        ;;
-        force-quit)
-                echo -n "Terminating php-fpm "
-                if [ ! -r $php_fpm_PID ] ; then
-                        echo "warning, no pid file found - php-fpm is not running ?"
-                        exit 1
-                fi
-                kill -TERM `cat $php_fpm_PID`
-                wait_for_pid removed $php_fpm_PID
-                if [ -n "$try" ] ; then
-                        echo " failed"
-                        exit 1
-                else
-                        echo " done"
-                fi
-        ;;
-        restart)
-                $0 stop
-                $0 start
-        ;;
-		status)
-			if [ -r $php_fpm_PID ] ; then
-				PID=$(cat $php_fpm_PID)
-				echo -n "php-fpm (pid $PID) is running..."
-			else
-				echo -n "php-fpm is dead..."
-				exit 2
-			fi
-		;;
-        reload)
-                echo -n "Reload service php-fpm "
-                if [ ! -r $php_fpm_PID ] ; then
-                        echo "warning, no pid file found - php-fpm is not running ?"
-                        exit 1
-                fi
-                kill -USR2 `cat $php_fpm_PID`
-                echo " done"
-        ;;
-        *)
-                echo "Usage: $0 {start|stop|force-quit|restart|reload}"
-                exit 1
-        ;;
-esac
diff --git a/resources/phpfpm/php.ini b/resources/phpfpm/php.ini
index 31b18de..4c6daa3 100644
--- a/resources/phpfpm/php.ini
+++ b/resources/phpfpm/php.ini
@@ -97,7 +97,7 @@
 ;     SQL databases without further manipulation.  Instead, you should use the
 ;     database vendor specific escape string function on each input element you
 ;     wish to send to a database.
-; - variables_order = "GPCS"       [Performance]
+; - variables_order = "EGPCS"       [Performance]
 ;     The environment variables are not hashed into the $_ENV.  To access
 ;     environment variables, you can use getenv() instead.
 ; - error_reporting = E_ALL        [Code Cleanliness, Security(?)]
@@ -129,7 +129,7 @@ zend.ze1_compatibility_mode = Off
 ; servers which are not under your control, because short tags may not
 ; be supported on the target server. For portable, redistributable code,
 ; be sure not to use short tags.
-short_open_tag = On
+short_open_tag = on

 ; Allow ASP-style <% %> tags.
 asp_tags = Off
@@ -294,15 +294,15 @@ disable_classes =
 ; (e.g. by adding its signature to the Web server header).  It is no security
 ; threat in any way, but it makes it possible to determine whether you use PHP
 ; on your server or not.
-expose_php = On
+expose_php = Off

 ;;;;;;;;;;;;;;;;;;;
 ; Resource Limits ;
 ;;;;;;;;;;;;;;;;;;;

-max_execution_time = 30     ; Maximum execution time of each script, in seconds
-max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
+max_execution_time = 300     ; Maximum execution time of each script, in seconds
+max_input_time = 60	; Maximum amount of time each script may spend parsing request data
 ;max_input_nesting_level = 64 ; Maximum input variable nesting level
 memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)

@@ -351,7 +351,10 @@ memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)
 ;
 ;   - Show all errors, except coding standards warnings
 ;
-error_reporting  =  E_ALL
+;error_reporting = E_ALL
+;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
+error_reporting = E_ALL & ~E_STRICT
+;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

 ; Print out errors (as a part of the output).  For production web sites,
 ; you're strongly encouraged to turn this feature off, and use error logging
@@ -366,16 +369,16 @@ error_reporting  =  E_ALL
 ; On or stdout - Display errors to STDOUT (default)
 ;
 ; To output errors to STDERR with CGI/CLI:
-;display_errors = "stderr"
+display_errors = "stdout"
 ;
 ; Default
 ;
-display_errors = "stdout"
+;display_errors = off

 ; Even when display_errors is on, errors that occur during PHP's startup
 ; sequence are not displayed.  It's strongly recommended to keep
 ; display_startup_errors off, except for when debugging.
-display_startup_errors = On
+display_startup_errors = Off

 ; Log errors into a log file (server-specific log, stderr, or error_log (below))
 ; As stated above, you're strongly advised to use error logging in place of
@@ -431,7 +434,7 @@ html_errors = On
 ;error_append_string = "</font>"

 ; Log errors to specified file.
-error_log = /opt/apache/logs/php.errors
+;error_log = filename

 ; Log errors to syslog (Event Log on NT, not valid in Windows 95).
 ;error_log = syslog
@@ -454,11 +457,11 @@ error_log = /opt/apache/logs/php.errors

 ; This directive describes the order in which PHP registers GET, POST, Cookie,
 ; Environment and Built-in variables (G, P, C, E & S respectively, often
-; referred to as EGPCS or GPC).  Registration is done from left to right, newer
+; referred to as EEGPCS or GPC).  Registration is done from left to right, newer
 ; values override older values.
-variables_order = "GPCS"
+variables_order = "EGPCS"

-; Whether or not to register the EGPCS variables as global variables.  You may
+; Whether or not to register the EEGPCS variables as global variables.  You may
 ; want to turn this off if you don't want to clutter your scripts' global scope
 ; with user data.  This makes most sense when coupled with track_vars - in which
 ; case you can access all of the GPC variables through the $HTTP_*_VARS[],
@@ -487,7 +490,7 @@ register_argc_argv = Off
 auto_globals_jit = On

 ; Maximum size of POST data that PHP will accept.
-post_max_size = 15M
+post_max_size = 20M

 ; Magic quotes
 ;
@@ -522,18 +525,11 @@ default_mimetype = "text/html"
 ;;;;;;;;;;;;;;;;;;;;;;;;;

 ; UNIX: "/path1:/path2"
-;include_path = ".:/php/includes"
+include_path = ".:/opt/docroot/shared"
 ;
 ; Windows: "\path1;\path2"
 ;include_path = ".;c:\php\includes"

-
-
-;***** Added by go-pear
-include_path=".:/opt/php-5.3.10/lib/php:/opt/docroot/shared; /opt/php/lib/php"
-;*****
-
-
 ; The root of the PHP pages, used only if nonempty.
 ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
 ; if you are running php as a CGI under any web server (other than IIS)
@@ -546,8 +542,7 @@ doc_root =
 user_dir =

 ; Directory in which the loadable extensions (modules) reside.
-;extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
-extension_dir = "/opt/php/lib/php/extensions/no-debug-non-zts-20121212/"
+extension_dir = "/opt/php/lib/php/extensions/no-debug-non-zts-20121212"

 ; Whether or not to enable the dl() function.  The dl() function does NOT work
 ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
@@ -576,7 +571,7 @@ enable_dl = On
 ; this to 1 will cause PHP CGI to fix it's paths to conform to the spec.  A setting
 ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
 ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
-; cgi.fix_pathinfo=1
+ cgi.fix_pathinfo=1

 ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
 ; security tokens of the calling client.  This allows IIS to define the
@@ -608,7 +603,7 @@ file_uploads = On
 ;upload_tmp_dir =

 ; Maximum allowed size for uploaded files.
-upload_max_filesize = 15M
+upload_max_filesize = 20M

 ;;;;;;;;;;;;;;;;;;
@@ -619,7 +614,7 @@ upload_max_filesize = 15M
 allow_url_fopen = On

 ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
-allow_url_include = On
+allow_url_include = Off

 ; Define the anonymous ftp password (your email address)
 ;from="john@doe.com"
@@ -667,6 +662,7 @@ default_socket_timeout = 60
 ; Be sure to appropriately set the extension_dir directive.

 ;extension=php_bz2.dll
+;extension=php_curl.dll
 ;extension=php_dba.dll
 ;extension=php_dbase.dll
 ;extension=php_exif.dll
@@ -710,11 +706,10 @@ default_socket_timeout = 60
 ;extension=php_xmlrpc.dll
 ;extension=php_xsl.dll
 ;extension=php_zip.dll
-;extension=memcached.so
 extension=redis.so
 extension=oauth.so
-extension=mcrypt_filter.so
-zend_extension = /opt/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
+extension=apcu.so
+zend_extension= /opt/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
 xdebug.overload_var_dump = 0
 xdebug.remote_enable=1
 xdebug.remote_connect_back = true
@@ -724,7 +719,8 @@ xdebug.dump_globals = on
 xdebug.dump.SERVER = REQUEST_URI
 xdebug.show_local_vars = on
 xdebug.profiler_enable_trigger = 1
-
+xdebug.profiler_enable = 1
+xdebug.force_display_errors = 1

 ;;;;;;;;;;;;;;;;;;;
 ; Module Settings ;
@@ -754,7 +750,7 @@ date.timezone = "Europe/London"

 [Pcre]
 ;PCRE library backtracking limit.
-;pcre.backtrack_limit=100000
+pcre.backtrack_limit=1000000

 ;PCRE library recursion limit.
 ;Please note that if you set this value to a high number you may consume all
@@ -770,14 +766,14 @@ define_syslog_variables  = Off

 [mail function]
 ; For Win32 only.
-SMTP = localhost
-smtp_port = 25
+;SMTP = 172.16.50.11
+;smtp_port = 25

 ; For Win32 only.
-;sendmail_from = me@example.com
+sendmail_from = extreme365@teamtalk.com

 ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
-sendmail_path = sendmail
+sendmail_path = /usr/sbin/sendmail -t -i

 ; Force the addition of the specified parameters to be passed as extra parameters
 ; to the sendmail binary. These parameters will always replace the value of
@@ -943,7 +939,7 @@ pgsql.max_links = -1
 ; Notice message logging require a little overheads.
 pgsql.ignore_notice = 0

-; Log PostgreSQL backends Noitce message or not.
+; Log PostgreSQL backends Notice message or not.
 ; Unless pgsql.ignore_notice=0, module cannot log notice message.
 pgsql.log_notice = 0

@@ -1036,7 +1032,7 @@ ifx.nullformat = 0
 ; Handler used to store/retrieve data.
 ;session.save_handler = files
 session.save_handler = redis
-session.save_path = "tcp://ssdm-redis:6379?timeout=3"
+session.save_path = "tcp://ssdm-redis:6379?timeout=3"
 session.gc_maxlifetime = 86400

 ; Argument passed to save_handler.  In the case of files, this is the path
@@ -1357,7 +1353,531 @@ soap.wsdl_cache_dir="/tmp"
 ; instead of original one.
 soap.wsdl_cache_ttl=86400

+;  extension=apc.so
+;  apc.enabled=1
+;  apc.shm_size=256M
+;  apc.ttl=7200
+;  apc.user_ttl=7200
+;  apc.enable_cli=1
+;  apc.stat_ctime=1
+;  apc.write_lock=1
+
+  apc.shm_size=512M
+  apc.ttl=7200
+  apc.user_ttl=7200
+  apc.enable_cli=1

 ; Local Variables:
 ; tab-width: 4
 ; End:
+;
+; This file contains the various settings for the New Relic PHP agent. There
+; are many options, all of which are described in detail at the following URL:
+; https://newrelic.com/docs/php/php-agent-phpini-settings
+;
+
+; If you use a full path to the extension you insulate yourself from the
+; extension directory changing if you change PHP installations or versions.
+; If you do not use an absolute path then the file must be installed in the
+; active configuration's extension directory.
+;extension=newrelic.so
+
+[newrelic]
+;
+; Setting: newrelic.enabled
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enable or disable the agent. Please note that you cannot globally
+;          disable the agent and then selectively enable it on a per-directory
+;          basis. If you disable the agent in the global INI file then the
+;          agent will not initialize at all. However, you can selectively
+;          disable the agent on a per-directory basis.
+;
+newrelic.enabled=true
+
+;
+; Setting: newrelic.license
+; Type   : string
+; Scope  : per-directory
+; Default: none
+; Info   : Sets the New Relic license key to use. This can vary from directory
+;          to directory if you are running a multi-tenant system. By special
+;          dispensation if you upgraded from a previous version of the agent
+;          where the license key was set in the daemon, the installation and
+;          upgrade script will have preserved your license key from the file
+;          /etc/newrelic/newrelic.cfg, but ONLY if you installed via rpm/yum
+;          or dpkg. The key is saved in /etc/newrelic/upgrade_please.key
+;          and the agent will look for that file if you do not specify a valid
+;          license here.
+;          It is *STRONGLY* recommended that you set the license key in your
+;          INI file(s) and do not rely on the key file being present. Also
+;          please note that even if you are not letting the agent start the
+;          daemon and are still using newrelic.cfg (see below) the license
+;          keyword in that file is no longer obeyed. Instead the agent will
+;          use the preserved value of that license from the key file.
+;          Once you have updated your INI files to contain the license we
+;          urge you to remove /etc/newrelic/upgrade_please.key in order to
+;          eliminate the potential for confusion about exactly where the key
+;          is coming from.
+;
+newrelic.license = "92fe88ed947a2ace44aadf991209b413cb1c266a"
+
+;
+; Setting: newrelic.logfile
+; Type   : string
+; Scope  : system
+; Default: none
+; Info   : Sets the name of the file to send log messages to.
+;
+newrelic.logfile = "/var/log/newrelic/php55_agent.log"
+
+;
+; Setting: newrelic.loglevel
+; Type   : string
+; Scope  : system
+; Default: "info"
+; Info   : Sets the level of detail to include in the log file. You should
+;          rarely need to change this from the default, and usually only under
+;          the guidance of technical support.
+;          Must be one of the following values:
+;            always, error, warning, info, verbose, debug, verbosedebug
+;
+;newrelic.loglevel = "info"
+
+;
+; Setting: newrelic.appname
+; Type   : string
+; Scope  : per-directory
+; Default: "PHP Application"
+; Info   : Sets the name of the application that metrics will be reported into.
+;          This can in fact be a list of up to 3 application names, each of
+;          which must be separated by a semi-colon. The first name in any such
+;          list is considered the 'primary' application name and must be unique
+;          for each account / license key.
+;
+;newrelic.appname = "UAT - PHP-5.5.7"
+
+;
+; Beginning with version 3.0 of the agent, the daemon can be automatically
+; started by the agent. There is no need to start the daemon before starting
+; Apache or PHP-FPM. All of the newrelic.daemon.* settings are options that
+; control the behavior of the daemon. These settings are converted into the
+; appropriate command line options when the agent starts the daemon. This is
+; now the preferred method of starting the daemon. There are still usage cases
+; (such as using a single daemon for serving multiple Apache instances) where
+; you may want to start the daemon via it's init script, but for most users,
+; this is the best place to configure and start the daemon.
+;
+; The agent will only launch the daemon if one isn't already running. Also
+; note that the agent will NOT stop the daemon once it has started. If you
+; want control over exactly when the daemon starts and stops you can still
+; achieve that by creating a daemon configuration file (located by default at
+; /etc/newrelic/newrelic.cfg) and running the chkconfig or equivalent command.
+; Please see the newrelic.cfg template file for details. That template file
+; is located at /usr/lib/newrelic-php5/scripts/newrelic.cfg.template.
+;
+; Also please note that the options here and in newrelic.cfg are identical,
+; except that in this file they are preceded with "newrelic.daemon.".
+;
+
+;
+; Setting: newrelic.daemon.logfile
+; Type   : string
+; Scope  : system
+; Default: none
+; Info   : Sets the name of the file to send daemon log messages to.
+;
+newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log"
+
+;
+; Setting: newrelic.daemon.loglevel
+; Type   : string
+; Scope  : system
+; Default: "info"
+; Info   : Sets the level of detail to include in the daemon log. You should
+;          rarely need to change this from the default, and usually only under
+;          the guidance of technical support.
+;          Must be one of the following values:
+;            always, error, warning, info, verbose, debug, verbosedebug
+;
+;newrelic.daemon.loglevel = "info"
+
+;
+; Setting: newrelic.daemon.port
+; Type   : string or integer
+; Scope  : system
+; Default: /tmp/.newrelic.sock
+; Info   : Sets how the agent and daemon communicate. How this is set can impact
+;          performance. The default is to use a UNIX-domain socket located at
+;          /tmp/.newrelic.sock. If you want to use UNIX domain sockets then
+;          this value must begin with a "/". If you set this to an integer
+;          value in the range 1-65534, then this will instruct the agent to
+;          use a normal TCP socket on the port specified. This may be easier
+;          to use if you are using a chroot environment.
+;
+;newrelic.daemon.port = "/tmp/.newrelic.sock"
+
+;
+; Setting: newrelic.daemon.max_threads
+; Type   : integer
+; Scope  : system
+; Default: 8
+; Info   : Sets the number of threads in the daemon "worker pool" that will be
+;          used for processing requests from each agent. The minimum is 4 and
+;          the maximum is 128.
+;
+;newrelic.daemon.max_threads = 8
+
+;
+; Setting: newrelic.daemon.ssl
+; Type   : boolean
+; Scope  : system
+; Default: true (as of version 3.6)
+; Info   : Sets whether or not communication with New Relic data collectors
+;          should use a secure HTTP connection or not.
+;
+;newrelic.daemon.ssl = true
+
+;
+; Setting: newrelic.daemon.proxy
+; Type   : string
+; Scope  : system
+; Default: none
+; Info   : Sets the host and user credentials to use as an egress proxy. This
+;          is only used if your site requires a proxy in order to access
+;          external servers on the internet, in this case the New Relic data
+;          collection servers. This is expressed in one of the following forms:
+;             hostname
+;             hostname:port
+;             user@hostname
+;             user@hostname:port
+;             user:password@hostname
+;             user:password@hostname:port
+;
+;newrelic.daemon.proxy = ""
+
+;
+; Setting: newrelic.daemon.pidfile
+; Type   : string
+; Scope  : system
+; Default: OS dependent
+; Info   : Sets the name of the file to store the running daemon's process ID
+;          (PID) in. This file is used by the daemon startup and shutdown
+;          script to determine whether or not the daemon is already running.
+;
+;newrelic.daemon.pidfile = ""
+
+;
+; Setting: newrelic.daemon.location
+; Type   : string
+; Scope  : system
+; Default: /usr/bin/newrelic-daemon
+; Info   : Sets the name of the daemon executable to launch.
+;          Please note that on OpenSolaris where /usr is frequently a read-only
+;          file system, the default daemon location is
+;          /opt/newrelic/bin/newrelic-daemon.
+;
+;newrelic.daemon.location = "/usr/bin/newrelic-daemon"
+
+;
+; Setting: newrelic.daemon.collector_host
+; Type   : string
+; Scope  : system
+; Default: collector.newrelic.com
+; Info   : Sets the host name of the New Relic data collector host to use.
+;          Please note that this is NOT any form of local host. It refers to
+;          the New Relic provided host. There is very little reason to ever
+;          change this from the default except in certain very special
+;          circumstances, and then only on instruction from a New Relic sales
+;          person or support staff member.
+;
+;newrelic.daemon.collector_host = "collector.newrelic.com"
+
+;
+; Setting: newrelic.daemon.dont_launch
+; Type   : integer (0, 1, 2 or 3)
+; Scope  : system
+; Default: 0
+; Info   : If you prefer to have the daemon launched externally before the
+;          agent starts up, set this variable to non-zero. The value you
+;          choose determines exactly when the agent is allowed to start the
+;          daemon:
+;          0 - agent can start the daemon any time it needs to
+;          1 - non-CLI (i.e Apache / php-fpm) agents can start the daemon
+;          2 - only CLI agents can start the daemon
+;          3 - the agent will never start the daemon
+;
+;newrelic.daemon.dont_launch = 0
+
+;
+; Setting: newrelic.capture_params
+; Type   : boolean
+; Scope  : per-directory
+; Default: false
+; Info   : Enable or disable the capturing of URL parameters. If enabled, then
+;          any variables passed on the URL like (for example ?id=12345) will be
+;          saved with the request and visible in various places in the web UI.
+;          If you tend to pass sensitive information around directly in the URL
+;          then its a good idea to keep this disabled. However, if your URL
+;          parameters are simply used for parameters without sensitive data but
+;          that are meaningful to each transaction then you can enable this.
+;
+;newrelic.capture_params = false
+
+; Setting: newrelic.ignored_params
+; Type   : string
+; Scope  : per-directory
+; Default: none
+; Info   : A comma-separated list of parameters to always exclude if parameter
+;          capturing is enabled above. You can use this to filter out sensitive
+;          user data that may appear as a URL parameter.
+;
+;newrelic.ignored_params = ""
+
+;
+; Setting: newrelic.error_collector.enabled
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enable the New Relic error collector. This will record the 20 most
+;          severe errors per harvest cycle. It is rare to want to disable this.
+;          Please also note that your New Relic subscription level may force
+;          this to be disabled regardless of any value you set for it.
+;
+;newrelic.error_collector.enabled = true
+
+;
+; Setting: newrelic.error_collector.record_database_errors
+; Type   : boolean
+; Scope  : per-directory
+; Default: false
+; Info   : Currently only supported for MySQL database functions. If enabled,
+;          this will cause errors returned by various MySQL functions to be
+;          treated as if they were PHP errors, and thus subject to error
+;          collection. This is only obeyed if the error collector is enabled
+;          above and the account subscription level permits error trapping.
+;
+;newrelic.error_collector.record_database_errors = false
+
+;
+; Setting: newrelic.error_collector.prioritize_api_errors
+; Type   : boolean
+; Scope  : per-directory
+; Default: false
+; Info   : If the error collector is enabled and you use the New Relic API to
+;          notice an error, if this is set to true then assign the highest
+;          priority to such errors.
+;
+;newrelic.error_collector.prioritize_api_errors = false
+
+;
+; Setting: newrelic.browser_monitoring.auto_instrument
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enables or disables automatic real user monitoring ("auto-RUM").
+;          When enabled will cause the agent to insert a header and a footer
+;          in HTML output that will time the actual end-user experience.
+;
+;newrelic.browser_monitoring.auto_instrument = true
+
+;
+; Setting: newrelic.transaction_tracer.enabled
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enables or disables the transaction tracer. When enabled this will
+;          produce a detailed call graph for any transaction that exceeds a
+;          certain threshold (see next entry). Only one transaction trace per
+;          application per harvest cycle is stored and it is always the slowest
+;          transaction during that cycle. Transaction traces are extremely
+;          useful when diagnosing problem spots in your application. Please
+;          note that TT's may be disabled by your account subscription level
+;          regardless of what you set here.
+;
+;newrelic.transaction_tracer.enabled = true
+
+;
+; Setting: newrelic.transaction_tracer.threshold
+; Type   : string with a time specification or the word "apdex_f"
+; Scope  : per-directory
+; Default: "apdex_f"
+; Info   : Specifies the threshold above which a transaction becomes a
+;          candidate for the transaction tracer. This can either be an absolute
+;          time value like "200ms" or "1s250ms" or "1h30m" or "750us" or the
+;          word "apdex_f". This last value, "apdex_f", means "4 times apdex_t".
+;          Thus the threshold changes according to your apdex_t setting. This
+;          is the default.
+;
+;newrelic.transaction_tracer.threshold = "apdex_f"
+
+;
+; Setting: newrelic.transaction_tracer.detail
+; Type   : integer in the range 0-2
+; Scope  : per-directory
+; Default: 1
+; Info   : Sets the level of detail in a transaction trace. Setting this to 0
+;          will only show the relatively few PHP functions that New Relic has
+;          deemed to be "interesting", as well as any custom functions you set
+;          (see below). A setting of 1 will trace and time all user functions,
+;          and a setting of 2, which needs another special variable to be set
+;          in order to take effect, will trace ALL PHP functions, including
+;          internal ones implemented in modules. This last setting can have a
+;          severe impact on performance which is why you need to consult New
+;          Relic support staff at support@newrelic.com to get the "special"
+;          variable to set to enable the feature. It is very rarely needed.
+;
+;          In earlier releases of the agent this was known as "top100".
+;
+;newrelic.transaction_tracer.detail = 1
+
+;
+; Setting: newrelic.transaction_tracer.slow_sql
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enables or disables the "slow SQL" tracer. When enabled, this will
+;          record the top 10 slowest SQL calls along with a stack trace of
+;          where the call occurred in your code.
+;
+;newrelic.transaction_tracer.slow_sql = true
+
+;
+; Setting: newrelic.transaction_tracer.stack_trace_threshold
+; Type   : time specification string ("500ms", "1s750ms" etc)
+; Scope  : per-directory
+; Default: 500ms
+; Info   : Sets the threshold above which the New Relic agent will record a
+;          stack trace for a transaction trace.
+;
+;newrelic.transaction_tracer.stack_trace_threshold = 500
+
+;
+; Setting: newrelic.transaction_tracer.explain_enabled
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; Info   : Enables or disables requesting "explain plans" from MySQL and
+;          PostgreSQL databases for slow SQL calls. The threshold for
+;          requesting explain plans is defined below.
+;
+;newrelic.transaction_tracer.explain_enabled = true
+
+;
+; Setting: newrelic.transaction_tracer.explain_threshold
+; Type   : time specification string ("750ms", "1s 500ms" etc)
+; Scope  : per-directory
+; Default: 500ms
+; Info   : Used by the slow SQL tracer to set the threshold above which an SQL
+;          statement is considered "slow", and to set the threshold above which
+;          the transaction tracer will request an "explain plan" from the data-
+;          base for slow SQL. This latter feature may not be active yet, please
+;          refer to the agent release notes to see when it becomes available.
+;          Only relevant if explain_enabled above is set to true.
+;
+;newrelic.transaction_tracer.explain_threshold = 500
+
+;
+; Setting: newrelic.transaction_tracer.record_sql
+; Type   : "off", "raw" or "obfuscated"
+; Scope  : per-directory
+; Default: "obfuscated"
+; Info   : Sets how SQL statements are recorded (if at all). If this is set to
+;          "raw" then no attempt is made at obfuscating SQL statements. THIS IS
+;          HIGHLY DISCOURAGED IN PRODUCTION ENVIRONMENTS! Setting this to raw
+;          has considerable security implications as it can expose sensitive
+;          and private customer data.
+;
+;newrelic.transaction_tracer.record_sql = "obfuscated"
+
+; Setting: newrelic.transaction_tracer.custom
+; Type   : string
+; Scope  : per-directory
+; Default: none
+; Info   : Sets the name(s) of additional functions you want to instrument and
+;          appear in transaction traces. This is only meaningful if you have
+;          set newrelic.transaction_tracer.detail to 0. This can be a comma-
+;          separated list of function or class method names.
+;
+;newrelic.transaction_tracer.custom = ""
+
+;
+; Setting: newrelic.framework
+; Type   : string
+; Scope  : per-directory
+; Default: empty (auto-detect framework)
+; Info   : Forces the framework to be one of the supported frameworks. This
+;          should only ever be used if the auto-detection fails, in which case
+;          we (support@newrelic.com) would very much like to know about the
+;          detection failure. Must be one of the following values:
+;            cakephp, codeigniter, drupal, joomla, kohana, magento, mediawiki,
+;            symfony, wordpress, yii, zend or no_framework.
+;
+;newrelic.framework = ""
+
+;
+; Setting: newrelic.webtransaction.name.remove_trailing_path
+; Type   : boolean
+; Scope  : per-directory
+; Default: false
+; Info   : Used to aid naming transactions correctly when an unsupported
+;          framework is being used. This option will cause anything after the
+;          script name to be stripped from a URL. For example, setting this
+;          would cause the "/xyz/zy" to be stripped from a URL such as
+;          "/path/to/foo.php/xyz/zy".
+;
+;newrelic.webtransaction.name.remove_trailing_path = false
+
+;
+; Setting: newrelic.webtransaction.name.functions
+; Type   : string
+; Scope  : per-directory
+; Default: none
+; Info   : Unless a specific framework such as Drupal or Wordpress has been
+;          detected, transactions are named according to the first script
+;          encountered, such as login.php. However, if you use a dispatcher
+;          file such as index.php this produces less useful data. If you use
+;          a dispatcher to redirect to actions such as "login", "show", "edit"
+;          etc, you can set this to the top level functions for those actions,
+;          and the function names specified here will be used to name the
+;          transaction.
+;
+;newrelic.webtransaction.name.functions = ""
+
+;
+; Setting: newrelic.webtransaction.name.files
+; Type   : string
+; Scope  : per-directory
+; Default: none
+; Info   : Same as newrelic.webtransaction.name.functions above but using file
+;          names instead of function names. Accepts standard POSIX regular
+;          expressions.
+;
+;newrelic.webtransaction.name.files = ""
+
+;
+; Setting: newrelic.daemon.auditlog
+; Type   : string
+; Scope  : system
+; Default: none
+; info   : Sets the name of a file to record all uncompressed, un-encoded
+;          content that is sent from your machine to the New Relic servers.
+;          This includes the full URL for each command along with the payload
+;          delivered with the command. This allows you to satisfy yourself
+;          that the agent is not sending any sensitive data to our servers.
+;          This file must be a different file the the newrelic.daemon.logfile
+;          setting above. If you set it to the same name, then audit logging will be
+;          silently ignored.
+;newrelic.daemon.auditlog = "/var/log/newrelic/audit.log"
+
+;
+; Setting: newrelic.analytics_events.enabled
+; Type   : boolean
+; Scope  : per-directory
+; Default: true
+; info   : Collect and report analytics event data.  Event data allows the
+;          New Relic UI to show additional information such as histograms at
+;          the cost of additional daemon memory and collector communication.
+;
+;newrelic.analytics_events.enabled = true
diff --git a/resources/statsd/Dockerfile b/resources/statsd/Dockerfile
new file mode 100644
index 0000000..c2183e9
--- /dev/null
+++ b/resources/statsd/Dockerfile
@@ -0,0 +1,14 @@
+FROM    centos:6.4
+
+RUN     rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
+RUN     yum install -y npm git
+
+RUN mkdir -p /opt/docroot
+WORKDIR /opt/docroot
+RUN git clone https://github.com/etsy/statsd
+
+WORKDIR /opt/docroot/statsd
+ADD conf/conf.js /opt/docroot/statsd/conf.js
+
+EXPOSE  8125/udp
+CMD ["node", "stats.js","conf.js"]
\ No newline at end of file
diff --git a/resources/statsd/conf/conf.js b/resources/statsd/conf/conf.js
new file mode 100644
index 0000000..208c732
--- /dev/null
+++ b/resources/statsd/conf/conf.js
@@ -0,0 +1,6 @@
+{
+	graphitePort: 2003
+	, graphiteHost: "ssdm-graphite"
+	, port: 8125
+	, backends: [ "./backends/graphite" ]
+}
\ No newline at end of file
diff --git a/resources/tomee/Dockerfile b/resources/tomee/Dockerfile
new file mode 100644
index 0000000..fb57e93
--- /dev/null
+++ b/resources/tomee/Dockerfile
@@ -0,0 +1,36 @@
+# Tomee
+#
+# VERSION               0.0.4
+
+FROM      ssdm-docker:5000/paulgrav/base
+MAINTAINER Paul Grave "paul.grave@bskyb.com"
+
+## Install some dependencies
+RUN yum -y install apr-devel apr apr-util openssl-devel
+
+# Download and unpack Tomee
+RUN curl -O 'http://devbuild.localnet:8080/jenkins/job/tomee/4/artifact/*zip*/archive.zip'
+RUN unzip archive.zip
+
+## Install the JDK and setup some env vars
+WORKDIR /usr/local
+RUN curl -Lk -O -H "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz
+RUN tar zxvf jdk-7u65-linux-x64.tar.gz
+RUN rm -f jdk-7u65-linux-x64.tar.gz
+ENV JAVA_HOME /usr/local/jdk1.7.0_65
+ENV PATH $PATH:$JAVA_HOME/bin
+
+## Build the APR native libraries for performance
+WORKDIR /archive/bin
+RUN tar xzvf tomcat-native.tar.gz
+WORKDIR /archive/bin/tomcat-native-1.1.31-src/jni/native
+RUN sh configure --with-apr=/usr/bin  --with-java-home=$JAVA_HOME --with-ssl=yes
+RUN make
+RUN make install
+
+ENV JAVA_OPTS -Djava.library.path=/usr/local/apr/lib -server -XX:+UseG1GC -XX:MaxGCPauseMillis=2000 -XX:+DisableExplicitGC -XX:MaxPermSize=1024m
+
+## Prepare to run Tomee
+WORKDIR /archive/bin
+EXPOSE 8080
+CMD ["sh","catalina.sh", "run"]
added: README for Glassfish