Date: Fri, 29 Mar 2024 15:02:45 +0000 (UTC) Message-ID: <36786013.13035.1711724565232@change.sos-berlin.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_13034_1047373792.1711724565232" ------=_Part_13034_1047373792.1711724565232 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
As an alternative to the instructions from this article users can refer = to the JS7 - Controller Installation using Docker Compose article= .
This video explains how to install the JS7 Controller for containers:
Pull the version of the Controller container image that corresponds to t= he JS7 release in use, for example:
docker i= mage pull sosberlin/js7:controller-2-5-0
Note: Current releases should be applied as available from https://hub.docker.com/r/sosberlin/js7
After pulling the Controller image you can run the container with a numb= er of options such as:
#!/bin/s= h docker run -dit --rm \ --hostname=3Djs7-controller-primary \ --network=3Djs7 \ --publish=3D15444:4444 \ --env=3D"RUN_JS_JAVA_OPTIONS=3D-Xmx256m" \ --env=3D"RUN_JS_ID=3Djobscheduler" \ --env=3D"RUN_JS_USER_ID=3D$(id -u $USER):$(id -g $USER)" \ --mount=3D"type=3Dvolume,src=3Djs7-controller-primary-var,dst=3D/var/= sos-berlin.com/js7/controller/var" \ --name js7-controller-primary \ sosberlin/js7:controller-2-5-0
Explanation:
--network
The above example makes use of a container netwo=
rk - created with the docker network create js7
command - to a=
llow network sharing between containers. Note that any inside ports used by=
containers is visible within a container network. Therefore a Controller i=
nstance running for the inside port 4444
can be accessed using=
the container's hostname and the same port within the container network.=
li>
--publish
The Controller is prepared to listen to the=
HTTP port 4444
. An outside port of the container's host can b=
e mapped to the Controller's inside HTTP port. This is not required for use=
with a container network, see --network
, however, it will all=
ow direct access to the Controller from the container's host through its ou=
tside port .--env=3DRUN_JS_JAVA_OPTIONS
This allows to Java optio=
ns to be injected into the Controller's container. Preferably this is used =
to specify memory requirements of a Controller, e.g. with -Xmx256m.
--env=3DRUN_JS_ID
This setting specifies the Controll=
er ID that is a unique identifier for either a standalone Controller instan=
ce or for both the primary and secondary Controller instances in a cluster =
that use a common Controller ID.--env=3DRUN_JS_USER_ID
Inside the container the Contr=
oller is operated with the jobscheduler
user account. In order=
to access, for example, log files created by the Controller and mounted to=
the container's host, it is recommended that you map the account that star=
ts the container to the jobscheduler
account inside the contai=
ner. The RUN_JS_USER_ID
environment variable accepts the User =
ID and Group ID of the account that will be mapped. The example listed abov=
e uses the current user, for details see JS7 - Running Containers for User Ac=
counts.--mount
The following volume mounts are suggested:
var
: This folder works as an entry point to the following =
sub-folders:
config
: The configuration folder allows the specification =
of individual settings for the operation of the Controller - see the =
sections below and the JS7 - Controller Configuration Items article. Defau=
lt settings are available from initial operation..logs
: In order to have persistent Controller log files the=
y have to be written to a volume that is mounted for the container. Feel fr=
ee to adjust the volume name from the src
attribute, however, =
the value of the dst
attribute should not be changed as it ref=
lects the directory hierarchy inside the container.state
: The Controller requires a directory for journal inf=
ormation that should be persistent. The journal is required to restore the =
state of orders when restarting the Controller.Containers offer a number of ways of mounting volumes, which include=
, for example, creating a local folder and mapping the folder to a volume <=
u>before executing the
# exampl= e to map volumes to directories on the container's host prior to running th= e Controller container mkdir -p /home/sos/js7/js7-controller-primary/var docker volume create --driver local --opt o=3Dbind --opt type=3Dnone --opt = device=3D"/home/sos/js7/js7-controller-primary/var" js7-controller-primary-= var
It is important that a time service is operated on the container's host = which runs the Controller in order to synchronize the system clock's time.<= /p>
Access to log files is essential for identifying problems during install= ation and operation of containers.
When mounting a volume for log files as explained above you should have = access to the files indicated in the JS7 - Log Files and Locations article.
controller.log
file reports general information, warni=
ngs and errors.watchdog.log
file includes information about automated=
restarts of the Controller.The following information applies for use of the Controller with the Ope= n Source license and with the commercial JS7 - License:
The following information applies if the Controller is used for high ava= ilability in a JS7 -= Controller Cluster using the commercial JS7 - License:
Note that it is not necessary to configure the Controller - it runs out-= of-the-box. The default configuration specifies that:
Users who intend to operate a compliant and secure job scheduling enviro= nment or who wish to operate the Controller as a cluster for high availabil= ity are recommended to familiarize themselves with the JS7 - Controll= er Configuration for Containers article series.
User who wish to create individual images of the Controller will find in= structions in the JS7 - Controller Build of Container Image article.