# Using version 3 to provide play-with-docker badge # You can change to version 2 without breaking. #version: '2' version:'3.5' services: # database: # Don't upgrade PostgreSQL by simply changing the version number # You need to migrate the Database to the new PostgreSQL version # image: postgres:9.6-alpine #mem_limit: 256mb # version 2 only #memswap_limit: 512mb # version 2 only #read_only: true # not supported in swarm mode please enable along with tmpfs #tmpfs: # - /run/postgresql:size=512K # - /tmp:size=256K # environment: # - POSTGRES_USER=hedgedoc # - POSTGRES_PASSWORD=password # - POSTGRES_DB=hedgedoc # volumes: # - database:/var/lib/postgresql/data # networks: # backend: # restart: always
# MySQL example # Most of the documentation that applies to PostgreSQL applies also to MySQL database: # # You should be able to upgrade MySQL without problems # # but to make sure no even when a problem appears you # # should have a backup image:mariadb:10 container_name:hedgedoc_db environment: # - MYSQL_USER_FILE=/run/secrets/dbuser # - MYSQL_PASSWORD_FILE=/run/secrets/dbpassword -MYSQL_ROOT_PASSWORD_FILE=/run/secrets/dbrootpassword -MYSQL_USER_FILE=/run/secrets/dbuser -MYSQL_PASSWORD_FILE=/run/secrets/dbpassword -MYSQL_DATABASE=hedgedoc -MYSQL_ALLOW_EMPTY_PASSWORD=true volumes: -database:/var/lib/mysql # # This config provides UTF-8 support to the database by default # # If this config is not used, HedgeDoc breaks as it tries to write # # UTF-8 to a latin database. -./resources/utf8.cnf:/etc/mysql/conf.d/utf8.cnf networks: backend: restart:always # secret names in this service secrets: -dbuser -dbpassword -dbrootpassword
hedgedoc: # Uncomment the following section to build the image yourself: #build: # context: . # dockerfile: debian/Dockerfile # args: # - "VERSION=master" # - "HEDGEDOC_REPOSITORY=https://github.com/hedgedoc/hedgedoc.git" image:quay.io/hedgedoc/hedgedoc:1.7.2 container_name:hedgedoc #mem_limit: 256mb # version 2 only #memswap_limit: 512mb # version 2 only #read_only: true # not supported in swarm mode, enable along with tmpfs #tmpfs: # - /tmp:size=10M # # Make sure you remove this when you use filesystem as upload type # - /hedgedoc/public/uploads:size=10M environment: # DB_URL is formatted like: <databasetype>://<username>:<password>@<hostname>:<port>/<database> # Other examples are:
# - For details see the official sequelize docs: http://docs.sequelizejs.com/en/v3/ # - sqlite:///data/sqlite.db (NOT RECOMMENDED) # - CMD_DB_URL=mysql://hedgedoc:password@database:3306/hedgedoc # - CMD_DB_URL=postgres://hedgedoc:password@database:5432/hedgedoc # ATTITION: CMD_DB_URL will be meaningless when secret dbURL is defined. it can be deleted. # DB_URL has been passed via secret dbURL, see resources/docker-entrypoint.sh line 18 -CMD_DB_URL=/run/secrets/dbURL volumes: -uploads:/hedgedoc/public/uploads # ports: # # Ports that are published to the outside. # # The latter port is the port inside the container. It should always stay on 3000 # # If you only specify a port it'll published on all interfaces. If you want to use a # # local reverse proxy, you may want to listen on 127.0.0.1. # # Example: # # - "127.0.0.1:3000:3000" # - "3000:3000" ports: -"88:3000" networks: backend: restart:always depends_on: -database # secret names in this service secrets: -dbURL
# Define networks to allow best isolation networks: # Internal network for communication with PostgreSQL/MySQL backend:
# Define named volumes so data stays in place # volumes: # # Volume for PostgreSQL/MySQL database # database: # driver_opts: # type: ext4 # o: bind # device: "/home/deepin/Applications/hedgedoc-container/database" # uploads: # driver_opts: # type: ext4 # o: bind # device: "/home/deepin/Applications/hedgedoc-container/uploads"
volumes: database: uploads:
secrets: # source of all docker secrets dbuser: file:./dbuser.txt dbpassword: file:./dbpassword.txt dbrootpassword: file:dbrootpassword.txt dbURL: file:./dbURL.txt