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
@ -151,4 +151,4 @@ update-graphql-data-prod:
docker compose exec -T web sh -c 'rm -rf /tmp/cache/*' docker compose exec -T web sh -c 'rm -rf /tmp/cache/*'
docker compose start graphql-engine docker compose start graphql-engine
sleep 120 sleep 120
make hasura-apply make hasura-apply

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
@ -153,24 +153,24 @@ This k8s setup creates all k8s resources inside the _Namespace_ `pokeapi`, run `
| Python 2/3 | [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_ | | Python 2/3 | [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_ |
| 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 |
|PHP |[lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi) |Auto caching, lazy loading | |PHP |[lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi)|Auto caching, lazy loading |
|PowerShell |[Celerium/PokeAPI-PowerShellWrapper](https://github.com/Celerium/PokeAPI-PowerShellWrapper)| | |PowerShell|[Celerium/PokeAPI-PowerShellWrapper](https://github.com/Celerium/PokeAPI-PowerShellWrapper)| |
|Python |[beastmatser/aiopokeapi](https://github.com/beastmatser/aiopokeapi) |Auto caching, asynchronous | |Python|[beastmatser/aiopokeapi](https://github.com/beastmatser/aiopokeapi)|Auto caching, asynchronous |
|Ruby |[rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2) | | |Ruby|[rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2)| |
|Rust |[lunik1/pokerust](https://gitlab.com/lunik1/pokerust) |Auto caching | |Rust|[lunik1/pokerust](https://gitlab.com/lunik1/pokerust)|Auto caching |
|Scala |[juliano/pokeapi-scala](https://github.com/juliano/pokeapi-scala) |Auto caching | |Scala |[juliano/pokeapi-scala](https://github.com/juliano/pokeapi-scala)|Auto caching |
|Spring Boot |[dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi) |Auto caching | |Spring Boot |[dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi)|Auto caching |
|Swift |[kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI) | | |Swift |[kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI)| |
|Typescript server-side/client-side|[Gabb-c/Pokenode-ts](https://github.com/Gabb-c/pokenode-ts) |Auto caching | |Typescript server-side/client-side|[Gabb-c/Pokenode-ts](https://github.com/Gabb-c/pokenode-ts)|Auto caching |
## 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