version: "3.7" # This is an example with common values. # Depending on the context, you may no have # to use them all : maybe you don't need # volumes of Traefik, feel free to remove # everything you don't need or understand # to suit your needs. # Don't hesitate to ask to the tech team. volumes: # Declaration of Docker volume # Also use a name so that Docker Compose does not add # the current folder name # Use as many volumes as you want : one for # data, one for configuration, etc. data: name: data networks: # Best pratice : put all services that do not need # to be exposed on the Internet in a separate network app: # This is the reverse-proxy default network : put all services # that need to be served via Traefik in this network docker_default: external: true services: # Main application app: # This is the name of the image # which will be built on the registry # Never use latest as a tag image: registry.picasoft.net/<image>:<tag> # Use a comprehensive name for easy # understanding of `docker ps` output container_name: app # If the container has to be reached from # the Internet, put in docker_default # Otherwise, just in its own network networks: - docker_default - app volumes: # Mount the Docker Volume in the container # to persist the data. The mount point # is service-dependant. - data:/mount_point # Exemple of mounting a file for configuration. # This is not a Docker volume, but a versionned # file is this repository. - ./config.json:/config.json # Don't put the .example extension, the real # file will be a copy with real values env_file: - ./secrets/myservices.secrets # If the service needs to be reachable from the # Internet via HTTPS, enable Traefik and tell # it the base URL of all requests which will be # redirected to this container. # Change the port to the exposed port of the # container. labels: traefik.enable: true traefik.frontend.rule: "Host:app.picasoft.net" traefik.port: 80 # If the service has a database, # tell Compose that it depends on it (i.e.) # should be launched if the service is launched depends_on: - db # This avoid restarting a container on # startup when it has been explicitly stopped restart: unless-stopped # Some services have a database : here is an example db: image: registry.picasoft.net/<image>:<tag> container_name: db # Database secrets should be in a separate file env_file: - ./secrets/myservices_db.secrets # The database should NOT be reachable # from the outside : only from the main container networks: - app restart: unless-stopped