Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

Examples are contributed by the Japanese JS7 Community. Find the complete instructions from the Start with JS7 JobScheduler docker-compose (PostgreSQL version) article.

Preparation

Docker Compose Configuration: docker-compose.yaml

Download: docker-compose.yamlyml

Code Block
languageyml
titleExample for use of Docker Compose with PostgreSQL
version: '3'

services:

  db:
    image: postgres:14-alpine
    volumes: 
      - db_data: /var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      - js7
    environment:
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --locale=en_US.UTF-8"
      POSTGRES_USER: js7user
      POSTGRES_PASSWORD: js7password
      POSTGRES_DB: js7db
    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

Hibernate Configuration: hibernate.cfg.xml

Download: hibernate.cfg.xml

Code Block
languagexml
titleExample of hibernate.cfg.xml for PostgreSQL
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
  <property name="hibernate.connection.password">js7password</property>
  <property name="hibernate.connection.url">jdbc:postgresql://db:5432/js7db</property>
  <property name="hibernate.connection.username">js7user</property>
  <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
  <property name="hibernate.show_sql">false</property>
  <property name="hibernate.connection.autocommit">false</property>
  <property name="hibernate.format_sql">true</property>
  <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
  <property name="hibernate.connection.provider_class">org.hibernate.hikaricp.internal.HikariCPConnectionProvider</property>
  <property name="hibernate.hikari.maximumPoolSize">10</property>
 </session-factory>
</hibernate-configuration>

Environment Variables used with the Examples

Code Block
languagebash
titleEnvironment Variables used with the Examples
echo -e "JS7USERID=$(id -u)\nJS7GROUPID=$(id -g)\nJS7VERSION=2-3-2" > .env

# check environment variables
cat .env
JS7USERID=1000
JS7GROUPID=1000
JS7VERSION=2-3-2

Directories used with the Examples

Code Block
languagebash
titleDirectories used with the Examples
mkdir db_data
mkdir js7-agent-primary
mkdir js7-controller-primary
mkdir js7-joc-primary-config
mkdir js7-joc-primary-logs

Directory Hierarchy

Code Block
languagebash
titleDirectories used with the Examples
. 
├── .env 
├── db_data
├── docker-compose.yml
├── hibernate.cfg.xml
├── js7-agent-primary
├── js7-controller-primary
├── js7-joc-primary-config
└── js7-joc-primary-logs

Container Start-up

Start Container

Code Block
languagebash
titleExample how to start up Containers
docker-compose up -d

# check containers
$ docker-compose ps
NAME                            COMMAND                  SERVICE                  STATUS              PORTS
js74-db-1                       "docker-entrypoint.s…"   db                       running             33060/tcp
js74-js7-joc-primary-1          "sh /usr/local/bin/e…"   js7-joc-primary          running             0.0.0.0:4446->4446/tcp, :::4446->4446/tcp

Copy Hibernate Configuration to Container

Code Block
languagebash
titleExample how to copy hibernate.cfg.xml to the Container
cp -f hibernate.cfg.xml js7-joc-primary-config/

Create Database Objects from Container

Code Block
languagebash
titleExample how to copy hibernate.cfg.xml to the Container
docker-compose exec js7-joc-primary /bin/sh -c /opt/sos-berlin.com/js7/joc/install/joc_install_tables.sh

# check installation log file
tail js7-joc-primary-logs/install-result.log

Restart Container

Code Block
languagebash
titleExample how to restart the Container
# restart container
docker-compose restart js7-joc-primary