awesome-compose/django
Chad Metcalf 702ec96821
Adding a Makefile and basic tests.
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>
2020-08-08 14:26:52 -07:00
..
app Upgrade Django version to fix CVE-2020-13596 & CVE-2020-13254 2020-06-05 21:34:30 +02:00
docker-compose.yml Django example (#43) 2020-04-07 14:00:55 +02:00
README.md changing extension (#46) 2020-04-07 15:56:32 +02:00
test.bats Adding a Makefile and basic tests. 2020-08-08 14:26:52 -07:00

Compose sample application

Django application in dev mode

Project structure:

.
├── docker-compose.yml
├── app
    ├── Dockerfile
    ├── requirements.txt
    └── manage.py

docker-compose.yml

services: 
  web: 
    build: app 
    ports: 
      - '8000:8000'

Deploy with docker-compose

$ docker-compose up -d
Creating network "django_default" with the default driver
Building web
Step 1/6 : FROM python:3.7-alpine
...
...
Status: Downloaded newer image for python:3.7-alpine
Creating django_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
3adaea94142d        django_web          "python3 manage.py r…"   About a minute ago   Up About a minute   0.0.0.0:8000->8000/tcp   django_web_1

After the application starts, navigate to http://localhost:8000 in your web browser:

Stop and remove the containers

$ docker-compose down