volumes: postgres_data: driver: local driver_opts: type: none o: bind device: /path/on/host plugins: driver: local driver_opts: type: none o: bind device: /path/on/host etherpad-var: driver: local driver_opts: type: none o: bind device: /path/on/host services: etherpad: user: "0:0" image: etherpad/etherpad:latest tty: true stdin_open: true volumes: - plugins:/opt/etherpad-lite/src/plugin_packages - etherpad-var:/opt/etherpad-lite/var depends_on: - postgres environment: NODE_ENV: production # not necessary to initially define # ADMIN_PASSWORD: DOCKER_COMPOSE_APP_ADMIN_PASSWORD DB_CHARSET: utf8mb4 DB_HOST: postgres DB_NAME: etherpad DB_PASS: DOCKER_COMPOSE_POSTGRES_PASSWORD DB_PORT: 5432 DB_TYPE: "postgres" DB_USER: DOCKER_COMPOSE_POSTGRES_USER # For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad DEFAULT_PAD_TEXT: " " DISABLE_IP_LOGGING: true SOFFICE: null TRUST_PROXY: true restart: always # ports: # - "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}" postgres: image: postgres:15-alpine environment: POSTGRES_DB: etherpad POSTGRES_PASSWORD: DOCKER_COMPOSE_POSTGRES_PASSWORD POSTGRES_PORT: 5432 POSTGRES_USER: DOCKER_COMPOSE_POSTGRES_USER PGDATA: /var/lib/postgresql/data/pgdata restart: always # Exposing the port is not needed unless you want to access this database instance from the host. # Be careful when other postgres docker container are running on the same port # ports: # - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data/pgdata