Docker Compose Apps
This is the file structure responsible for creating the Docker Compose App:
└── containers
    └── shellhttpd
        └── docker-compose.yml
The combination of a top-level directory containing docker-compose.yml
will end-up in a Docker Compose App.
The docker-compose.yml file specifies one or more containers to run and their configurations.
Foundries.io Hub as Source
Dockerfile in the Same Folder
In shellhttpd,  the docker-compose.yml file specifies the Docker
container image from the Foundries.io hub, hub.foundries.io/${FACTORY}/shellhttpd:latest.
Here, the Docker container image is generated by the Dockerfile in the shellhttpd folder.
└── containers
    └── shellhttpd
        ├── docker-compose.yml
        └── Dockerfile
shellhttpd/docker-compose.yml:
services:
  httpd:
    image: hub.foundries.io/${FACTORY}/shellhttpd:latest
Dockerfile in a Different Folder
The Docker container image can also come from a different application created in containers.git.
This is common when you have a Docker container image used by multiple Docker Compose Apps.
For example:
└── containers
    ├── app
    │   └── docker-compose.yml
    └── grafana
        └── Dockerfile
In this case, app/docker-compose.yml looks like this:
app/docker-compose.yml:
services:
  dashboard:
    image: hub.foundries.io/${FACTORY}/grafana:latest
External Hub as Source
A Docker Compose App can specify a Docker container image from an external host. A good example is images from Docker Hub.
For example:
└── containers
    └── mosquitto
        └── docker-compose.yml
In this case, app/docker-compose.yml file looks like this:
app/docker-compose.yml:
services:
  mosquitto:
    image: eclipse-mosquitto:1.6.12
Multiple Sources
You can can also mix the examples for both single and multiple container applications. For example:
└── containers
    ├── shellhttpd
    │   ├── docker-compose.yml
    │   └── Dockerfile
    └── grafana
        └── Dockerfile
In this case, shellhttpd/docker-compose.yml specifies three different Docker container images:
app/docker-compose.yml:
services:
  httpd:
    image: hub.foundries.io/${FACTORY}/shellhttpd:latest
  dashboard:
    image: hub.foundries.io/${FACTORY}/grafana:latest
  mosquitto:
    image: eclipse-mosquitto:1.6.12
- httpd: A Docker container image created from the same- shellhttpdfolder.
- dashboard: A Docker container image created from the- grafanafolder.
- mosquitto: The mosquitto Docker container image from- hub.docker.com.