Page History
Table of Contents |
---|
Introduction
The JS7 - Controller Installation for Docker Containers article explains start-up of a JOC Cockpit container using the Docker® Run
command.
The following examples apply for users who wish to start containers using the docker-compose
utility. Consider that examples have to be adjusted to individual environments.
Examples are have been contributed by the Japanese JS7 Community. Find the The complete instructions from can be found in the Start with JS7 JobScheduler docker-compose (MySQL version) article.
Preparation
Docker Compose Configuration: docker-compose.
...
yml
Download: docker-compose.yamlyml
Code Block | ||||
---|---|---|---|---|
| ||||
version: '3'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
networks:
- js7
environment:
MYSQL_ROOT_PASSWORD: js7rootpassword
MYSQL_DATABASE: js7db
MYSQL_USER: js7user
MYSQL_PASSWORD: js7password
restart: "no"
js7-joc-primary:
depends_on:
- db
container_name: js7-joc-primary
image: sosberlin/js7:joc-${JS7VERSION}
hostname: js7-joc-primary
ports:
- "17446:4446"
networks:
- js7
volumes:
- js7-joc-primary-config:/var/sos-berlin.com/js7/joc/resources/joc
- js7-joc-primary-logs:/var/sos-berlin.com/js7/joc/logs
environment:
RUN_JS_JAVA_OPTIONS: -Xmx256m
RUN_JS_USER_ID: "${JS7USERID}:${JS7GROUPID}"
restart: "no"
networks:
js7:
external: true
volumes:
db_data:
driver: local
driver_opts:
type: none
device: ${PWD}/db_data
o: bind
js7-joc-primary-config:
driver: local
driver_opts:
type: none
device: ${PWD}/js7-joc-primary-config
o: bind
js7-joc-primary-logs:
driver: local
driver_opts:
type: none
device: ${PWD}/js7-joc-primary-logs
o: bind
|
...
- Use of volumes: There are a number of ways how to mount or bind of mounting or binding volumes into a container.
- One strategy is to mount a Docker® volume that which is managed by Docker®, typically in
/var/lib/docker/volumes
. - Another strategy is to map Docker® volumes to the local file system. This requires to let letting Docker® Compose know that the volume is locally managed . This is what the above example is focused onand is the focus of the above example.
- One strategy is to mount a Docker® volume that which is managed by Docker®, typically in
- Use of user accounts: see JS7 - Running Containers for User Accounts.
- The
RUN_JS_USER_ID
setting holds the User ID and Group ID. Consider that the Group ID has to be 0 as directories and files in the image are owned by the root group.
- The
Hibernate Configuration: hibernate.cfg.xml
...
Code Block | ||||
---|---|---|---|---|
| ||||
echo -e "JS7USERID=$(id -u)\nJS7GROUPID=$(id -g)\nJS7VERSION=2-35-20" > .env # check environment variables cat .env JS7USERID=1000 JS7GROUPID=10000 JS7VERSION=2-35-20 |
Directories used with the Examples
Code Block | ||||
---|---|---|---|---|
| ||||
mkdir db_data
mkdir js7-agent-primary
mkdir js7-controller-primary
mkdir js7-joc-primary-config
mkdir js7-joc-primary-logs |
...
Code Block | ||||
---|---|---|---|---|
| ||||
.
├── .env
├── db_data
├── docker-compose.yml
├── hibernate.cfg.xml
├── js7-agent-primary
├── js7-controller-primary
├── js7-joc-primary-config
└── js7-joc-primary-logs |
...
Code Block | ||||
---|---|---|---|---|
| ||||
# restart container docker-compose restart js7-joc-primary |
Initial Operation
See JS7 - JOC Cockpit Installation for Docker Containers, section: Initial Operation.