{"data":{"markdownRemark":{"html":"<h2 id=\"building-via-docker\"><a href=\"#building-via-docker\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Building via Docker</h2>\n<p>Before you begin make sure your model is added inside <code class=\"language-text\">org.models package</code>, and registered inside the main class. You should also confirm being able to run locally before deploying.</p>\n<h3 id=\"building-using-sbt\"><a href=\"#building-using-sbt\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Building using SBT</h3>\n<p>The first step is to add the docker &#x26; assembly plugin to your environment. You can do this by going to your .sbt directory. Choosing the correct version you will see a 'plugins.sbt' file (this step should be familiar if using SBT and Eclipse; however, if the file/folder is missing you will need to add them) and add the following.</p>\n<p class=\"code-header\">plugins.sbt</p>\n<div class=\"gatsby-highlight\" data-language=\"scala\"><pre class=\"language-scala\"><code class=\"language-scala\">addSbtPlugin<span class=\"token punctuation\">(</span><span class=\"token string\">\"com.eed3si9n\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"sbt-assembly\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"0.14.6\"</span><span class=\"token punctuation\">)</span>\n\naddSbtPlugin<span class=\"token punctuation\">(</span><span class=\"token string\">\"se.marcuslonnberg\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"sbt-docker\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"1.5.0\"</span><span class=\"token punctuation\">)</span>\n\naddSbtPlugin<span class=\"token punctuation\">(</span><span class=\"token string\">\"com.typesafe.sbt\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"sbt-native-packager\"</span> <span class=\"token operator\">%</span> <span class=\"token string\">\"1.3.3\"</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>To build in SBT make sure you have properly configured your <code class=\"language-text\">build.sbt</code> file. You'll need to add the below section to both enable the docker plugin, and configure how it will build your docker image.</p>\n<p class=\"code-header\">build.sbt</p>\n<div class=\"gatsby-highlight\" data-language=\"scala\"><pre class=\"language-scala\"><code class=\"language-scala\"><span class=\"token comment\">//*** SBT ASSEMBLY ***</span>\n\nassemblyMergeStrategy in assembly <span class=\"token operator\">:</span><span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> PathList<span class=\"token punctuation\">(</span><span class=\"token string\">\"META-INF\"</span><span class=\"token punctuation\">,</span> xs @ _<span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">=></span> MergeStrategy<span class=\"token punctuation\">.</span>discard\n  <span class=\"token comment\">//akka configuration files</span>\n  <span class=\"token keyword\">case</span> PathList<span class=\"token punctuation\">(</span><span class=\"token string\">\"reference.conf\"</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">=></span> MergeStrategy<span class=\"token punctuation\">.</span>concat\n  <span class=\"token keyword\">case</span> _ <span class=\"token keyword\">=></span> MergeStrategy<span class=\"token punctuation\">.</span>first\n<span class=\"token punctuation\">}</span>\nassemblyJarName in assembly <span class=\"token operator\">:</span><span class=\"token operator\">=</span> <span class=\"token string\">\"simudyne-sbt-docker.jar\"</span>\n\n\n<span class=\"token comment\">//*** SBT DOCKER ***</span>\n\nenablePlugins<span class=\"token punctuation\">(</span>sbtdocker<span class=\"token punctuation\">.</span>DockerPlugin<span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// Generating docker file</span>\ndockerfile in docker <span class=\"token operator\">:</span><span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">val</span> artifact<span class=\"token operator\">:</span> File <span class=\"token operator\">=</span> assembly<span class=\"token punctuation\">.</span>value\n  <span class=\"token keyword\">val</span> artifactTargetPath <span class=\"token operator\">=</span> s<span class=\"token string\">\"/${artifact.name}\"</span>\n\n  <span class=\"token keyword\">new</span> Dockerfile <span class=\"token punctuation\">{</span>\n    from<span class=\"token punctuation\">(</span><span class=\"token string\">\"simudyne/scala-sbt:2.11.12.1.0.4\"</span><span class=\"token punctuation\">)</span>\n\tcopy<span class=\"token punctuation\">(</span>baseDirectory<span class=\"token punctuation\">(</span>_ <span class=\"token operator\">/</span> <span class=\"token string\">\"simudyneSDK.properties\"</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span> s<span class=\"token string\">\"/simudyneSDK.properties\"</span><span class=\"token punctuation\">)</span>\n    copy<span class=\"token punctuation\">(</span>artifact<span class=\"token punctuation\">,</span> artifactTargetPath<span class=\"token punctuation\">)</span>\n    entryPoint<span class=\"token punctuation\">(</span><span class=\"token string\">\"java\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"-jar\"</span><span class=\"token punctuation\">,</span> artifactTargetPath<span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\nimageNames in docker <span class=\"token operator\">:</span><span class=\"token operator\">=</span> Seq<span class=\"token punctuation\">(</span>\n  ImageName<span class=\"token punctuation\">(</span>s<span class=\"token string\">\"${name.value}-$simudyneVersion:latest\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Build the image by running 'sbt docker' inside the project's folder. This will create a docker image using the dockerfile generated by sbt in a way defined inside 'build.sbt'.</p>\n<p>You can now proceed to 'Pushing with Docker Hub'</p>\n<div class=\"ui segment warning message\">\n<h4>Properties File</h4>\n<p>If you are using the default 'simudyneSDK.properties' file you can proceed. If however, you are using multiple '.properties' files (such as a different setting for working with Spark) you will need to change a few things. First you must change the name used above to copy the file. Secondly you will need to edit the entryPoint to add the '-DsimudyneConfigFile' and/or '-DsimudyneConfigDir' as you would normally for running.</p>\n</div>\n<h3 id=\"building-using-maven\"><a href=\"#building-using-maven\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Building using Maven</h3>\n<p>The first step is to make a few changes to your pom.xml (if not pulling from the quickstart repo). Make sure you add the jodatime and junit versions to your properties section.</p>\n<p class=\"code-header\">pom.xml</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>properties</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>maven.compiler.source</span><span class=\"token punctuation\">></span></span>1.8<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>maven.compiler.source</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>maven.compiler.target</span><span class=\"token punctuation\">></span></span>1.8<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>maven.compiler.target</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>jodatime.version</span><span class=\"token punctuation\">></span></span>2.5<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>jodatime.version</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>junit.version</span><span class=\"token punctuation\">></span></span>4.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>junit.version</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>properties</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>You will then want to add the jodatime and junit dependencies to the section starting with '<dependency>'</p>\n<p class=\"code-header\">pom.xml</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>junit<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>junit<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${junit.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>scope</span><span class=\"token punctuation\">></span></span>test<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>scope</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>joda-time<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>joda-time<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${jodatime.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>Finally you will add the plugins for assembling and dockerize-ing the project.</p>\n<p class=\"code-header\">pom.xml</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>plugin</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>org.apache.maven.plugins<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>maven-shade-plugin<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>2.4.1<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>executions</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>execution</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>phase</span><span class=\"token punctuation\">></span></span>package<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>phase</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>goals</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>goal</span><span class=\"token punctuation\">></span></span>shade<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>goal</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>goals</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>configuration</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>shadedArtifactAttached</span><span class=\"token punctuation\">></span></span>true<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>shadedArtifactAttached</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>shadedClassifierName</span><span class=\"token punctuation\">></span></span>allinone<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>shadedClassifierName</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactSet</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>includes</span><span class=\"token punctuation\">></span></span>\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>include</span><span class=\"token punctuation\">></span></span>*:*<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>include</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>includes</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactSet</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>transformers</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>transformer</span> <span class=\"token attr-name\">implementation</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>org.apache.maven.plugins.shade.resource.AppendingTransformer<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>resource</span><span class=\"token punctuation\">></span></span>reference.conf<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>resource</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>transformer</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>transformer</span> <span class=\"token attr-name\">implementation</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>org.apache.maven.plugins.shade.resource.ManifestResourceTransformer<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>main-Class</span><span class=\"token punctuation\">></span></span>Main<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>main-Class</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>transformer</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>transformers</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>configuration</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>execution</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>executions</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>plugin</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>plugin</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>com.spotify<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>docker-maven-plugin<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>1.0.0<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>configuration</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>imageName</span><span class=\"token punctuation\">></span></span>simudyne-maven-docker<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>imageName</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>baseImage</span><span class=\"token punctuation\">></span></span>simudyne/scala-sbt:2.11.12.1.0.4<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>baseImage</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>entryPoint</span><span class=\"token punctuation\">></span></span>[\"java\", \"-jar\", \"/${project.build.finalName}-allinone.jar\"]<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>entryPoint</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token comment\">&lt;!-- copy the service's jar file from target into the root directory of the image --></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>resources</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>resource</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>targetPath</span><span class=\"token punctuation\">></span></span>/<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>targetPath</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>directory</span><span class=\"token punctuation\">></span></span>${project.build.directory}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>directory</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>include</span><span class=\"token punctuation\">></span></span>${project.build.finalName}-allinone.jar<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>include</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>resource</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>resource</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>targetPath</span><span class=\"token punctuation\">></span></span>/<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>targetPath</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>directory</span><span class=\"token punctuation\">></span></span>.<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>directory</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>include</span><span class=\"token punctuation\">></span></span>simudyneSDK.properties<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>include</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>resource</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>resources</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>configuration</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>plugin</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div class=\"ui info message\">\n<h4>Building the image</h4>\n<p>Build the image by running 'mvn clean package docker:build -s settings.xml' inside the project's folder. This will create a docker image using the dockerfile generated by mvn in the way defined inside 'pom.xml'.</p>\n<p>You can now proceed to 'Pushing with Docker Hub'</p>\n</div>\n<h2 id=\"pushing-to-docker-hub\"><a href=\"#pushing-to-docker-hub\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pushing to Docker Hub</h2>\n<p>You will now push the docker image you have created to the Docker hub. You will want to replace the following things.</p>\n<ul>\n<li>[build] - This will be the output you get from running the docker command above. It will change based on method and version but should look similar to 'simudyne-sbt-java-2.0.0-beta.2' or 'simudyne-maven-docker' You can confirm the name by running 'docker images' to see the latest created image.</li>\n<li>[account] - Your account on the docker hub</li>\n<li>[repo-name] - The name of the repository you've created on the hub.</li>\n<li>[tag] - Tag is a useful method such that you can pull different files from your repo.</li>\n</ul>\n<p>An example of this would be simudyne/simu-repo:demos</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> docker tag <span class=\"token punctuation\">[</span>build<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>account<span class=\"token punctuation\">]</span>/<span class=\"token punctuation\">[</span>repo-name<span class=\"token punctuation\">]</span>:<span class=\"token punctuation\">[</span>tag<span class=\"token punctuation\">]</span>\n<span class=\"token function\">sudo</span> docker push <span class=\"token punctuation\">[</span>account<span class=\"token punctuation\">]</span>/<span class=\"token punctuation\">[</span>repo-name<span class=\"token punctuation\">]</span></code></pre></div>\n<p>You should be able to navigate to the Docker hub and confirm your image has been updated.</p>\n<div class=\"ui segment info message\">\n<h4>Logging into Docker</h4>\n<p>You must first run 'docker login' before you can push or pull to a repo. This will automatically ask for your account and password.</p>\n</div>\n<h2 id=\"deployment-on-server\"><a href=\"#deployment-on-server\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Deployment on Server</h2>\n<p>You must first log into the VM or server which you are deploying on. Please make sure the appropriate firewall and ports are made available based on either your public or intranet settings.</p>\n<p>Pull the image using the details you specified above.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> docker pull <span class=\"token punctuation\">[</span>account<span class=\"token punctuation\">]</span>/<span class=\"token punctuation\">[</span>repo-name<span class=\"token punctuation\">]</span>:<span class=\"token punctuation\">[</span>tag<span class=\"token punctuation\">]</span></code></pre></div>\n<p>You will likely already be running a container if not please skip to the next step. However, if you are you need to stop the existing container.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> docker <span class=\"token function\">ps</span> <span class=\"token comment\">#to identify the container ID</span>\n<span class=\"token function\">sudo</span> docker stop <span class=\"token operator\">&lt;</span>containerID<span class=\"token operator\">></span></code></pre></div>\n<p>You will then look for the exact image name, and then run it with the following configuration options.</p>\n<ul>\n<li><ImageID> - get the exact name from the 'docker images' command.</li>\n<li><ip> - replace with 0.0.0.0 to have it available on all IPs of the host</li>\n<li><port> - replace with 80 to have it available on default HTTP port</li>\n</ul>\n<p>An example of this would be 'docker run -p 80:80 f3c0fa608b22 0.0.0.0 80'</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> docker images <span class=\"token comment\"># to have a look at the available images and get ImageID</span>\n<span class=\"token function\">sudo</span> docker run -p <span class=\"token operator\">&lt;</span>port<span class=\"token operator\">></span>:<span class=\"token operator\">&lt;</span>port<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>ImageID<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>ip<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span>port<span class=\"token operator\">></span></code></pre></div>\n<p>Once completed you should be able to go to the IP or DNS address of the server you've deployed on (mind the port) and see the console as you would locally.</p>","headings":[{"value":"Building via Docker","depth":2},{"value":"Building using SBT","depth":3},{"value":"Building using Maven","depth":3},{"value":"Pushing to Docker Hub","depth":2},{"value":"Deployment on Server","depth":2}],"frontmatter":{"title":"Deploying via Docker","toc":null,"experimental":null}},"site":{"siteMetadata":{"title":"Simudyne Docs","latestVersion":"2.6"}}},"pageContext":{"absolutePath":"/home/vsts/work/1/s/content/2.0/reference/deployment/docker.md","versioned":true,"version":"2.0","kind":"reference","pagePath":"/reference/deployment/docker","chronology":{"prev":{"name":"Deployment","path":"/reference/deployment"},"next":{"name":"Run mode","path":"/reference/run_mode"}},"lastUpdated":"2026-04-21T13:56:54.827Z"}}