Versions Compared

Key

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

...

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


Explanation:

  • Use of volumes: There are a number of ways how to mount or bind volumes into a container.
    • One strategy is to mount a Docker® volume that 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 Docker® Compose know that the volume is locally managed. This is what the above example is focused on.

Hibernate Configuration: hibernate.cfg.xml

...