services: inventaire: image: inventaire/inventaire:latest env_file: .env # You may also build image from sources with: # build: # context: ./inventaire # dockerfile: Dockerfile.inventaire depends_on: - couchdb - elasticsearch # Uncomment if you want to access the code: volumes: - inventaire-server:/opt/inventaire logging: options: max-size: "10m" max-file: "3" restart: unless-stopped couchdb: build: context: ./couchdb dockerfile: Dockerfile.couchdb env_file: .env # Uncomment ports to get access to the db # ie. for database transformation, querying, UI access (http://localhost:5984/_utils/) # /!\ Beware that exposing container ports like this might bypass your firewall rules # See https://docs.docker.com/engine/install/ubuntu/#firewall-limitations # Keeping it bound to localhost (which is the default) should be safe though # (that is, contrary to binding to 0.0.0.0) # ports: # - "5984:5984" volumes: - 'couchdb:/opt/couchdb/data' restart: unless-stopped elasticsearch: image: elasticsearch:7.17.28 environment: - 'http.host=elasticsearch' - 'transport.host=elasticsearch' # See https://www.elastic.co/guide/en/elasticsearch/reference/7.16/docker.html - 'discovery.type=single-node' # Limit memory usage to 512MB, that should be enough at first # See https://www.elastic.co/guide/en/elasticsearch/reference/current/advanced-configuration.html - 'ES_JAVA_OPTS=-Xms512m -Xmx512m' - 'xpack.security.enabled=false' - 'ingest.geoip.downloader.enabled=false' - 'logger.org.elasticsearch=ERROR' - 'logger.com.azure.core=ERROR' - 'logger.org.apache=ERROR' volumes: - 'elasticsearch:/usr/share/elasticsearch/data' restart: unless-stopped nginx: build: context: ./nginx dockerfile: Dockerfile.nginx ports: - "80:80" - "443:443" volumes: - ./nginx/templates:/etc/nginx/templates/ - ./nginx/snippets:/etc/nginx/snippets - inventaire-server:/opt/inventaire - certbot-www:/var/www/certbot - ./certbot/conf:/etc/letsencrypt env_file: .env depends_on: # Required to be able to define the `inventaire` host as an upstream - inventaire restart: unless-stopped certbot: image: certbot/certbot:latest volumes: - ./certbot/conf:/etc/letsencrypt - certbot-www:/var/www/certbot restart: unless-stopped entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;" depends_on: - nginx volumes: couchdb: elasticsearch: certbot-www: inventaire-server: