<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: Axon.ivy Engine 8 could not start on OpenShift with DeploymentConfig</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig</link><description>&lt;p&gt;Hi Ivy Team,&lt;/p&gt;
&lt;p&gt;I'm trying to run Axon.ivy Engine on OpenShift, the first try with a Pod is working. Then I try to use DeploymentConfig to automate the Pod creation, it could not run because the running user didn't have permission on Axon.ivy Engine directory.&lt;/p&gt;
&lt;p&gt;Here is the error detail:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;title&amp;gt;Invalid Configuration Location&amp;lt;/title&amp;gt;The configuration area at '/usr/lib/axonivy-engine-8/?/.eclipse/1939981958_linux_gtk_x86_64/configuration' could not be created.  Please choose a writable location using the '-configuration' command line option.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I guest OpenShift runs Axon.ivy Engine by a different user than the one defined in Docker Image.&lt;/p&gt;
&lt;p&gt;I think fixing the permission of &lt;code&gt;/usr/lib/axonivy-engine-8&lt;/code&gt; may solve the issue. By adding these line into Dockerfile&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RUN chown -R ivy:root /usr/lib/axonivy-engine-8 &amp;amp;&amp;amp; chmod 775 -R /usr/lib/axonivy-engine-8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do you have any suggestion?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After fixing permission, I faced another issue, it's definitely related to OpenShift using different user.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java.lang.RuntimeException: Error initializing storage.
    at org.eclipse.osgi.internal.framework.EquinoxContainer.&amp;lt;init&amp;gt;(EquinoxContainer.java:84)
    at org.eclipse.osgi.launch.Equinox.&amp;lt;init&amp;gt;(Equinox.java:34)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:315)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:251)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1441)
Caused by: java.io.IOException: Unable to create lock manager.
    at org.eclipse.osgi.storagemanager.StorageManager.open(StorageManager.java:713)
    at org.eclipse.osgi.storage.Storage.getChildStorageManager(Storage.java:2168)
    at org.eclipse.osgi.storage.Storage.getInfoInputStream(Storage.java:2185)
    at org.eclipse.osgi.storage.Storage.&amp;lt;init&amp;gt;(Storage.java:241)
    at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:176)
    at org.eclipse.osgi.internal.framework.EquinoxContainer.&amp;lt;init&amp;gt;(EquinoxContainer.java:82)
    ... 11 more
An error has occurred. See the log file
null.
&lt;/code&gt;&lt;/pre&gt;</description><atom:link href="https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 19 Jun 2020 02:40:59 -0400</lastBuildDate><item><title>Comment by Alex Suter on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4612</link><description>&lt;p&gt;Yes, this is anyway a good approach! So you can take as base image whatever you want to take!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Suter</dc:creator><pubDate>Fri, 19 Jun 2020 02:40:59 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4612</guid></item><item><title>Comment by vinh_ on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4611</link><description>&lt;p&gt;Thanks Alex, this is what I'm doing right now, I may build the image from scratch base on official Axon.ivy Engine Dockerfile to reduce the image size (you know the files are duplicated only for changing permission).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">vinh_</dc:creator><pubDate>Fri, 19 Jun 2020 02:11:55 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4611</guid></item><item><title>Comment by Alex Suter on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4609</link><description>&lt;p&gt;Thank you for this link, in the doc is stated &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RUN chgrp -R 0 /some/directory &amp;amp;&amp;amp; \
    chmod -R g+rwX /some/directory
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This seems only to be necessary for OpenShift environment but not for docker and for Kubernetes environment. So we won't apply this to our image. You need to create your own image which is based on the official Axon.ivy Engine image. Then you can apply these changes to the directories.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Suter</dc:creator><pubDate>Fri, 19 Jun 2020 02:09:48 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4609</guid></item><item><title>Comment by vinh_ on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4607</link><description>&lt;p&gt;the &lt;code&gt;root&lt;/code&gt; group is what OpenShift recommend in its image creation guideline, you could find reference in the URL bellow:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html/creating_images/creating-images-guidelines"&gt;https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html/creating_images/creating-images-guidelines&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The default behavior of OpenShift is always creating Arbitrary User ID to prevent container escape and privilege escalation.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">vinh_</dc:creator><pubDate>Fri, 19 Jun 2020 02:03:49 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4607</guid></item><item><title>Comment by Alex Suter on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4605</link><description>&lt;p&gt;This is in my opinion definitively no option! This is a security risk. Especially for the Debian package. If you have any docs about what is common practice, we will apply this to the image, but I think you may not use OpenShift the right way?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Suter</dc:creator><pubDate>Fri, 19 Jun 2020 01:58:07 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4605</guid></item><item><title>Comment by vinh_ on Alex Suter's answer</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4603</link><description>&lt;p&gt;I found the cause, OpenShift use Arbitrary User with un-predictable UID, this user has group &lt;code&gt;root&lt;/code&gt;, I could fix this issue by using &lt;code&gt;chown&lt;/code&gt; to &lt;code&gt;ivy:root&lt;/code&gt; and &lt;code&gt;chmod&lt;/code&gt; to 775 the following directories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/usr/lib/axonivy-engine-8&lt;/li&gt;
&lt;li&gt;/var/lib/axonivy-engine-8&lt;/li&gt;
&lt;li&gt;/var/log/axonivy-engine-8&lt;/li&gt;
&lt;li&gt;/var/cache/axonivy-engine-8&lt;/li&gt;
&lt;li&gt;/etc/axonivy-engine-8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think the better fix could go in Debian package and Dockerfile by set the owner to &lt;code&gt;ivy:root&lt;/code&gt; and permission to &lt;code&gt;775&lt;/code&gt; for all Ivy related directories.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">vinh_</dc:creator><pubDate>Fri, 19 Jun 2020 01:52:40 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig#4603</guid></item><item><title>Answer by Alex Suter</title><link>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig/4601</link><description>&lt;p&gt;We are creating a user and a group called &lt;code&gt;ivy&lt;/code&gt; with id &lt;code&gt;1000&lt;/code&gt;, which seems best practice. Running a container in priviledge mode or changing folders for root access is not recommended at all. &lt;/p&gt;
&lt;p&gt;I'm not familiar with OpenShift, do you have any docs about users and group in OpenShift?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Suter</dc:creator><pubDate>Fri, 19 Jun 2020 01:42:10 -0400</pubDate><guid>https://answers.axonivy.com/questions/4599/axon-ivy-engine-8-could-not-start-on-openshift-with-deploymentconfig/4601</guid></item></channel></rss>