# https://docs.docker.com/compose/environment-variables/ version: "2.4" services: postgres: container_name: postgres_mattermost image: postgres:${POSTGRES_IMAGE_TAG} restart: ${RESTART_POLICY} security_opt: - no-new-privileges:true pids_limit: 100 read_only: true tmpfs: - /tmp - /var/run/postgresql volumes: - ${POSTGRES_DATA_PATH}:/var/lib/postgresql/data environment: # timezone inside container - TZ # necessary Postgres options/variables - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB mattermost: depends_on: - postgres container_name: mattermost image: mattermost/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG} restart: ${RESTART_POLICY} security_opt: - no-new-privileges:true pids_limit: 200 read_only: true tmpfs: - /tmp volumes: - ${MATTERMOST_CONFIG_PATH}:/mattermost/config:rw - ${MATTERMOST_DATA_PATH}:/mattermost/data:rw - ${MATTERMOST_LOGS_PATH}:/mattermost/logs:rw - ${MATTERMOST_PLUGINS_PATH}:/mattermost/plugins:rw - ${MATTERMOST_CLIENT_PLUGINS_PATH}:/mattermost/client/plugins:rw environment: # timezone inside container - TZ # necessary Mattermost options/variables (see env.example) - MM_SQLSETTINGS_DRIVERNAME - MM_SQLSETTINGS_DATASOURCE # additional settings - MM_SERVICESETTINGS_SITEURL # If you use rolling image tags and feel lucky watchtower can automatically pull new images and # instantiate containers from it. https://containrrr.dev/watchtower/ # Please keep in mind watchtower will have access on the docker socket. This can be a security risk. # # watchtower: # container_name: watchtower # image: containrrr/watchtower:latest # restart: unless-stopped # volumes: # - /var/run/docker.sock:/var/run/docker.sock