pokeapi/Resources/docker/app/README.md

51 lines
2.1 KiB
Markdown

# Quick reference
- **Maintained by**:
[the PokeAPI Contributors](https://github.com/PokeAPI/pokeapi/graphs/contributors)
- **Where to get help**:
[PokeAPI Slack](http://pokeapi.slack.com/).
- **Where to file issues**:
[https://github.com/PokeAPI/pokeapi/issues](https://github.com/PokeAPI/pokeapi/issues)
- **Source of this description**:
[pokeapi repo's `Resources/docker/app/` directory](https://github.com/PokeAPI/pokeapi/blob/master/Resources/docker/app/README.md)
## Supported tags and respective `Dockerfile` links
- [`master`](https://github.com/PokeAPI/pokeapi/blob/master/Resources/docker/app/Dockerfile)
- [`staging`](https://github.com/PokeAPI/pokeapi/blob/staging/Resources/docker/app/Dockerfile)
> `pokeapi` uses `python:3.10-alpine` as base image.
## What is PokeAPI?
PokeAPI is a full RESTful API linked to an extensive database detailing everything about the Pokémon main game series.
> [pokeapi.co](https://pokeapi.co/)
![logo](https://raw.githubusercontent.com/PokeAPI/media/master/logo/pokeapi_256.png)
## How to use this image
This container connects to a Postgres database via the environment variables `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_HOST`, `POSTGRES_PORT`.
The container connects to a Redis cache via the environment variable `REDIS_CONNECTION_STRING`.
### 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.
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.
### Build the data
Pokémon data isn't automatically present in this image. All Pokémon data is persisted in a PostgreSQL database and thus needs to be built.
When the container is up and running, run the following shell commands:
```sh
docker exec pokeapi python manage.py migrate --settings=config.docker-compose
docker exec pokeapi sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose'
```