Notas de quickstart
Rode o script de polling num contêiner Docker
Uma imagem pequena, a chave passada em tempo de execução e uma política de restart: o caminho mais curto do laptop para um poller sem supervisão.
O script de polling funciona no seu laptop. A próxima pergunta é como rodá-lo em algum lugar que não seja o seu laptop, e a resposta confiável e sem graça é um contêiner: uma imagem pequena, a chave injetada em tempo de execução, uma política de restart para os dias ruins. Aqui está o setup inteiro, montado sobre o quickstart de Python, verificado em 2026-10-27.
A imagem
O poll.py do quickstart precisa de Python e uma biblioteca, então a imagem tem quatro linhas:
FROM python:3.12-slim
RUN pip install requests
COPY poll.py /app/poll.py
CMD ["python", "/app/poll.py"]
Construa uma vez, e o mesmo artefato roda em qualquer host com Docker: docker build -t odds-poll . na pasta que contém poll.py e o Dockerfile.
Note o que não está na imagem: a chave. Nada sobre a API pertence a uma camada de build, porque imagens são enviadas, compartilhadas e cacheadas em lugares que você não controla.
A chave entra em tempo de execução
O script já lê a chave e a URL base do ambiente, que é exatamente onde um contêiner os quer. Passe-os na hora de rodar e eles nunca tocam um arquivo da imagem:
services:
poll:
build: .
restart: unless-stopped
environment:
- ODDS_BASE_URL=https://...
- ODDS_API_KEY=sua chave
Duas linhas fazem o trabalho operacional. As entradas de ambiente injetam a chave e a URL base em tempo de execução, e a política de restart traz o contêiner de volta depois de uma falha ou de um reboot do host. Para um poller, unless-stopped é a política certa: reinicia em falha e no boot, e ainda respeita um stop deliberado. Um docker compose up -d o inicia.
Os logs são a interface
Um contêiner desanexado é invisível até você perguntar. docker compose logs -f acompanha os prints do script, o que no quickstart significa cada money line movida na hora em que chega. Isso basta para um setup de observação. Quando você quiser os preços em vez do console, dê um volume ao contêiner e deixe o script escrever o CSV ali, para que os dados sobrevivam ao contêiner de onde vieram.
Se mudar o script, reconstrua e recrie: docker compose build, depois docker compose up -d de novo. O ciclo é rápido porque a imagem é pequena, e pequena é qualidade aqui: menos camadas, menos surpresas, restarts mais rápidos.
O que o orçamento da chave gratuita significa dentro de um contêiner
Nada muda na permissão. A orientação de cadência do quickstart continua valendo: uma chamada a cada poucos segundos drena as 100 chamadas diárias da chave gratuita em minutos, e um poll de 15 minutos estica o mesmo orçamento ao longo de um dia, como o quickstart observa, verificado em 2026-10-27. O contêiner muda onde o script roda, nunca com que frequência ele deve chamar.
Ajuste o intervalo para a chave que você tem, não para o host que você alugou. O contêiner vai alegremente ultrapassar a sua cota o dia inteiro; o Dockerfile não conhece o seu plano.
Um script, uma imagem de quatro linhas, duas variáveis de ambiente e uma política de restart. Esse é o salto inteiro de "funciona na minha máquina" para "roda sem mim".