# https://docs.docker.com/compose/environment-variables/ version: "3" services: postgres: container_name: postgres_mattermost image: postgres:${POSTGRES_IMAGE_TAG} restart: ${RESTART_POLICY} volumes: - ${POSTGRES_DATA_PATH}:/var/lib/postgresql/data environment: # timezone inside container - TZ # necessay Postgres options/variables - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB nginx: container_name: nginx_mattermost image: nginx:${NGINX_IMAGE_TAG} restart: ${RESTART_POLICY} volumes: - ${NGINX_MATTERMOST_CONFIG}:/etc/nginx/conf.d/mattermost.conf:ro - ${NGINX_DHPARAMS_FILE}:/dhparams4096.pem - ${CERT_PATH}:/cert.pem:ro - ${KEY_PATH}:/key.pem:ro environment: # timezone inside container - TZ ports: - ${HTTPS_PORT}:443 - ${HTTP_PORT}:80 mattermost: depends_on: - postgres - nginx container_name: mattermost image: mattermost/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG} restart: ${RESTART_POLICY} 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 - MM_SERVICESETTINGS_SITEURL - MM_LOGSETTINGS_CONSOLELEVEL - MM_LOGSETTINGS_FILELEVEL - MM_PASSWORDSETTINGS_MINIMUMLENGTH - MM_PASSWORDSETTINGS_SYMBOL - MM_PASSWORDSETTINGS_UPPERCASE # 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