<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Courier;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:569384937;
        mso-list-type:hybrid;
        mso-list-template-ids:-1018679538 195213328 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1
        {mso-list-id:1841966948;
        mso-list-type:hybrid;
        mso-list-template-ids:-1606398824 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2
        {mso-list-id:1928418032;
        mso-list-template-ids:-362645148;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Thanks everyone for your help working through the issues I had here. I thought I’d give back to the list here with the complete steps to make this work.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m using VMs based on Debian 9 on Google Cloud Platform. This should work in Docker containers or other Linux environments perhaps with minor changes to some of the apt-get steps. These instructions presume you have a MySQL instance running at [mysql-host] and have your MySQL [root-password]. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here I’m using a throw-away VM instance to get the initial configuration working. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Make sure your package library is up to date:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get update<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If you don’t have Java, install it:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get install openjdk-8-jdk<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Install midpoint standalone- this is temporary and can be a throw-away instance<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>cd ~<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>wget https://evolveum.com/downloads/midpoint/3.8/midpoint-3.8-dist.tar.gz<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo tar xzf midpoint-3.8-dist.tar.gz -C /opt<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo mv /opt/midpoint-3.8 /opt/midpoint<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo /opt/midpoint/bin/start.sh<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Midpoint will take a few minutes to start.  You can monitor startup with:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo tail /opt/midpoint/var/log/midpoint.log<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You can access the demo install at <a href="http://myserver-ip-or-localhost:8080">http://myserver-ip-or-localhost:8080</a>. It takes a while to load the first time.<o:p></o:p></p><p class=MsoNormal>Log in as user: administrator / password: 5ecr3t<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Shut down:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo /opt/midpoint/bin/stop.sh<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Get the MySQL client if you don’t have it:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get install mysql-client <o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Create the MySQL database:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>mysql -h [mysql-host] -u root -p<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>Enter password: [root-password]<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>MySQL> CREATE DATABASE midpoint CHARACTER SET utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin DEFAULT COLLATE utf8_bin;</span><span style='font-family:Consolas'> </span><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>MySQL> CREATE USER 'midpoint' IDENTIFIED BY 'some-password';<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>GRANT ALL on midpoint.* TO 'midpoint';<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>MySQL> \q<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Import the database schema (will take a minute or so):<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>mysql -h [mysql-host] -u midpoint -p midpoint < /opt/midpoint/doc/config/sql/_all/mysql-3.8-all-utf8mb4.sql<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>Enter password: [some-password]<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Install the MySQL driver:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.12.tar.gz<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>tar xzf mysql-connector-java-8.0.12.tar.gz<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo mkdir -p /opt/midpoint/var/lib<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo cp mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar /opt/midpoint/var/lib/<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Update config.xml to use the MySQL driver:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo vim /opt/midpoint/var/config.xml<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You will replace the entire <repository> … </repository> section.<o:p></o:p></p><p class=MsoNormal>Replace:<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><repository><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    </repositoryServiceFactoryClass><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <baseDir>${midpoint.home}</baseDir><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <asServer>true</asServer><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'></repository><o:p></o:p></span></p><p class=MsoNormal>With (remember to replace [mysql-host] and [some-password] with the appropriate info):<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><repository><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <repositoryServiceFactoryClass>com.evolveum.midpoint.repo.sql.SqlRepositoryFactory<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    </repositoryServiceFactoryClass><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <database>mysql</database><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <jdbcUsername>midpoint</jdbcUsername><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <jdbcPassword>[some-password]</jdbcPassword><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>    <jdbcUrl>jdbc:mysql://[mysql-host]:3306/midpoint?characterEncoding=utf8&amp;disableMariaDbDriver</jdbcUrl><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'></repository><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal>Re-start midpoint with the MySQL database. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo /opt/midpoint/bin/start.sh<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Midpoint will take a couple minutes to start, then you can access at http://serverip-or-localhost:8080 <o:p></o:p></p><p class=MsoNormal>Log in as user: administrator / password: 5ecr3t<o:p></o:p></p><p class=MsoNormal>If all is well, midpoint will now be accessing the MySQL database. Note that this database must now be used with the keystore.jceks and config.xml files in your installation, which we will put into the permanent Docker image. There are other approaches, such as persistent volumes- but this is simple.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Shutdown again:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo /opt/midpoint/bin/stop.sh<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If you don’t have Docker installed (these steps from <a href="https://docs.docker.com/install/linux/docker-ce/debian/">https://docs.docker.com/install/linux/docker-ce/debian/</a>):<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get install \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>     apt-transport-https \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>     ca-certificates \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>     curl \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>     gnupg2 \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>     software-properties-common<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo add-apt-repository \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>   "deb [arch=amd64] https://download.docker.com/linux/debian \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>   $(lsb_release -cs) \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>   stable"<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get update<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo apt-get install docker-ce<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo docker run hello-world<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Create a Dockerfile that includes midpoint, the MySQL driver, and the keystore.jceks and config.xml files. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>mkdir ~/midpoint-docker<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>cd ~/midpoint-docker<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo cp /opt/midpoint/var/config.xml .<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo cp /opt/midpoint/var/keystore.jceks .<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo chmod 666 config.xml keystore.jceks<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In this directory, create a file named Dockerfile and paste the following into the file:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>FROM openjdk:8-jdk-alpine<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>MAINTAINER you@domain.com<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>ENV MP_VERSION 3.8<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>ENV MP_DIR /opt/midpoint<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>ENV XMX 3072M<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>ENV XMS 3072M<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>RUN mkdir -p ${MP_DIR}/var \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Downloading midPoint archive...' \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && wget https://evolveum.com/downloads/midpoint/${MP_VERSION}/midpoint-${MP_VERSION}-dist.tar.gz -P ${MP_DIR} \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Extracting midPoint archive...' \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && tar xzf ${MP_DIR}/midpoint-${MP_VERSION}-dist.tar.gz -C ${MP_DIR} --strip-components=1 \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Downloading MySQL driver...' \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && cd /tmp \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.12.tar.gz -P . \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Extracting and installing MySQL driver...' \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && tar xzf mysql-connector-java-8.0.12.tar.gz \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && mkdir -p ${MP_DIR}/var/lib \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && cp mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar ${MP_DIR}/var/lib \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Cleaning up...' \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && rm mysql-connector-java-8.0.12.tar.gz \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && rm -rf mysql-connector-java-8.0.12 \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && rm ${MP_DIR}/midpoint-${MP_VERSION}-dist.tar.gz \<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'> && echo 'Done.'<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>COPY config.xml ${MP_DIR}/var/<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>COPY keystore.jceks ${MP_DIR}/var/<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>CMD ["/bin/sh", "-c", "java -Xmx$XMX -Xms$XMS -Dfile.encoding=UTF8 -Dmidpoint.home=$MP_DIR/var -jar $MP_DIR/lib/midpoint.war"]<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Save this file, then build and run the docker file:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo docker build -t midpoint-docker .  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'><o:p> </o:p></span></p><p class=MsoNormal>You should now be able to run the image:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:12.0pt;font-family:Courier;color:#4472C4'>sudo docker run -p 8080:8080 midpoint-docker  <o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You’ll see the midpoint log messages, and should be able to access http://serverip-or-localhost:8080 once it has started.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In my case, I’m pushing this to the google container repository (gcr.io) and have used this image to initialize GCE VMs and GKE kubnernetes instances.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Then I’ve put this behind a load balancer with DNS “internal.mydomain.com”, removed the public IP address from the VM, set up SSL on the load balancer frontend, and enabled Identity Aware Load Balancing in GCP. I’ll be using this approach for my internal admin tools including midpoint.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hope this helps!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Eric<o:p></o:p></p></div></body></html>