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 sameshellhttpdfolder.dashboard: A Docker container image created from thegrafanafolder.mosquitto: The mosquitto Docker container image fromhub.docker.com.