Merge pull request #1059 from PokeAPI/compose-v2

Use compose V2
This commit is contained in:
Alessandro Pezzè 2024-05-08 22:03:47 +02:00 committed by GitHub
commit a8d24a493f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 34 additions and 34 deletions

View file

@ -18,7 +18,7 @@ graphql
.vscode .vscode
.github .github
.circleci .circleci
docker-compose.yml docker-compose*
.dockerignore .dockerignore
/*.md /*.md
/*.js /*.js

View file

@ -45,38 +45,38 @@ openapi-generate:
python manage.py spectacular --color --file openapi.yml ${local_config} python manage.py spectacular --color --file openapi.yml ${local_config}
docker-up: # (Docker) Create services/volumes/networks docker-up: # (Docker) Create services/volumes/networks
docker-compose up -d docker compose up -d
docker-migrate: # (Docker) Run any pending migrations docker-migrate: # (Docker) Run any pending migrations
docker-compose exec -T app python manage.py migrate ${docker_config} docker compose exec -T app python manage.py migrate ${docker_config}
docker-build-db: # (Docker) Build the database docker-build-db: # (Docker) Build the database
docker-compose exec -T app sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell ${docker_config}' docker compose exec -T app sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell ${docker_config}'
docker-make-migrations: # (Docker) Create migrations files if schema has changed docker-make-migrations: # (Docker) Create migrations files if schema has changed
docker-compose exec -T app sh -c 'python manage.py makemigrations ${docker_config}' docker compose exec -T app sh -c 'python manage.py makemigrations ${docker_config}'
docker-flush-db: # (Docker) Removes all the data present in the database but preserves tables and migrations docker-flush-db: # (Docker) Removes all the data present in the database but preserves tables and migrations
docker-compose exec -T app sh -c 'python manage.py flush --no-input ${docker_config}' docker compose exec -T app sh -c 'python manage.py flush --no-input ${docker_config}'
docker-destroy-db: # (Docker) Removes the volume where the database is installed on, alongside to the container itself docker-destroy-db: # (Docker) Removes the volume where the database is installed on, alongside to the container itself
docker rm -f pokeapi_db_1 docker rm -f pokeapi_db_1
docker volume rm pokeapi_pg_data docker volume rm pokeapi_pg_data
docker-shell: # (Docker) Launch an interative shell for the pokeapi container docker-shell: # (Docker) Launch an interative shell for the pokeapi container
docker-compose exec app sh -l docker compose exec app sh -l
docker-stop: # (Docker) Stop containers docker-stop: # (Docker) Stop containers
docker-compose stop docker compose stop
docker-down: # (Docker) Stop and removes containers and networks docker-down: # (Docker) Stop and removes containers and networks
docker-compose down docker compose down
docker-test: # (Docker) Run tests docker-test: # (Docker) Run tests
docker-compose exec -T app python manage.py test ${local_config} docker compose exec -T app python manage.py test ${local_config}
docker-prod: docker-prod:
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f Resources/compose/docker-compose-prod-graphql.yml up -d docker compose -f docker-compose.yml -f docker-compose.override.yml -f Resources/compose/docker-compose-prod-graphql.yml up -d
docker-setup: docker-up docker-migrate docker-build-db # (Docker) Start services, prepare the latest DB schema, populate the DB docker-setup: docker-up docker-migrate docker-build-db # (Docker) Start services, prepare the latest DB schema, populate the DB

View file

@ -72,7 +72,7 @@ Run `make help` to see all tasks.
## Docker and Compose   [![docker hub](https://img.shields.io/docker/v/pokeapi/pokeapi?label=tag&sort=semver)](https://hub.docker.com/r/pokeapi/pokeapi) ## Docker and Compose   [![docker hub](https://img.shields.io/docker/v/pokeapi/pokeapi?label=tag&sort=semver)](https://hub.docker.com/r/pokeapi/pokeapi)
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allows you to deploy a production-like environment, with separate containers for each service, and is recommended if you need to simply spin up PokéAPI. There is also a multi-container setup, managed by [Docker Compose V2](https://docs.docker.com/compose/). This setup allows you to deploy a production-like environment, with separate containers for each service, and is recommended if you need to simply spin up PokéAPI.
Start everything by Start everything by
@ -83,9 +83,9 @@ make docker-setup
If you don't have `make` on your machine you can use the following commands If you don't have `make` on your machine you can use the following commands
```sh ```sh
docker-compose up -d docker compose up -d
docker-compose exec -T app python manage.py migrate --settings=config.docker-compose docker compose exec -T app python manage.py migrate --settings=config.docker-compose
docker-compose exec -T app sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose' docker compose exec -T app sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose'
``` ```
Browse [localhost/api/v2/](http://localhost/api/v2/) or [localhost/api/v2/pokemon/bulbasaur/](http://localhost/api/v2/pokemon/bulbasaur/) on port `80`. Browse [localhost/api/v2/](http://localhost/api/v2/) or [localhost/api/v2/pokemon/bulbasaur/](http://localhost/api/v2/pokemon/bulbasaur/) on port `80`.
@ -105,7 +105,7 @@ make docker-migrate
## GraphQL &nbsp; <a href="ttps://github.com/hasura/graphql-engine"><img height="29px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"/></a> ## GraphQL &nbsp; <a href="ttps://github.com/hasura/graphql-engine"><img height="29px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"/></a>
When you start PokéAPI with the above docker-compose setup, an [Hasura Engine](https://github.com/hasura/graphql-engine) server is started as well. It's possible to track all the PokeAPI tables and foreign keys by simply When you start PokéAPI with the above Docker Compose setup, an [Hasura Engine](https://github.com/hasura/graphql-engine) server is started as well. It's possible to track all the PokeAPI tables and foreign keys by simply
```sh ```sh
# hasura cli needs to be installed and available in your $PATH: https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html # hasura cli needs to be installed and available in your $PATH: https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html
@ -154,7 +154,7 @@ This k8s setup creates all k8s resources inside the _Namespace_ `pokeapi`, run `
| Python 3 | [PokeAPI/pokebase](https://github.com/PokeAPI/pokebase) | _Auto caching_, _Image caching_ | | Python 3 | [PokeAPI/pokebase](https://github.com/PokeAPI/pokebase) | _Auto caching_, _Image caching_ |
|Wrapper|Repository|Features| |Wrapper|Repository|Features|
|----------------------------------|-------------------------------------------------------------------------------------------|---------------------------| |---|---|---|
|.Net Standard |[mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet)|Auto caching | |.Net Standard |[mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet)|Auto caching |
|Dart|[prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)| | |Dart|[prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)| |
|Go|[mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go)|Auto caching | |Go|[mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go)|Auto caching |
@ -170,7 +170,7 @@ This k8s setup creates all k8s resources inside the _Namespace_ `pokeapi`, run `
## Donations ## Donations
Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the service up. We get 330 million requests a month! Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a donation to help keep the service up. We get 1+ billion requests a month!
Thank you to all our backers! [Become a backer](https://opencollective.com/pokeapi#backer) Thank you to all our backers! [Become a backer](https://opencollective.com/pokeapi#backer)

View file

@ -35,7 +35,7 @@ The container connects to a Redis cache via the environment variable `REDIS_CONN
### Run the container ### Run the container
The container exposes port `80`. It needs a PostgreSQL and a Redis instance to connect to. Refer to the section [How to use this image](./how-to-use-this-image) for mapping the environment variables. The container exposes port `80`. It needs a PostgreSQL and a Redis instance to connect to. Refer to the section [How to use this image](#how-to-use-this-image) for mapping the environment variables.
It's recommended to use the provided [docker-compose.yml](https://github.com/PokeAPI/pokeapi/blob/master/docker-compose.yml) to start a container from this image. It's recommended to use the provided [docker-compose.yml](https://github.com/PokeAPI/pokeapi/blob/master/docker-compose.yml) to start a container from this image.

View file

@ -6,4 +6,4 @@ services:
context: . context: .
dockerfile: ./Resources/docker/app/Dockerfile dockerfile: ./Resources/docker/app/Dockerfile
# docker-compose -f docker-compose.yml -f docker-compose-dev.yml up -d # docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d