This approach uses bats to create a generic docker-compose test. It checks that images are pullable, projects are buildable, up works, and if ports are exposed that something is listening. The tests can be tailored for each example. As long as they are the same though, you can edit lib/test.bats.example and then `make update-tests` and all the tests will be synced. Signed-off-by: Chad Metcalf <chad@docker.com> |
||
---|---|---|
.. | ||
app | ||
docker-compose.yaml | ||
README.md | ||
test.bats |
Compose sample application
PHP application with Apache2
Project structure:
.
├── docker-compose.yaml
├── app
├── Dockerfile
└── index.php
services:
web:
build: app
ports:
- '80:80'
volumes:
- ./app:/var/www/html/
Deploy with docker-compose
$ docker-compose up -d
Creating network "php-docker_web" with the default driver
Building web
Step 1/6 : FROM php:7.2-apache
...
...
Creating php-docker_web_1 ... done
Expected result
Listing containers must show two containers running and the port mapping as below:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bc8271fee81 php-docker_web "docker-php-entrypoi…" About a minute ago Up About a minute 0.0.0.0:80->80/tc php-docker_web_1
After the application starts, navigate to http://localhost:80
in your web browser or run:
$ curl localhost:80
Hello World!
Stop and remove the containers
$ docker-compose down