Uma imagem Docker leve e otimizada baseada em Python 3.12 com Alpine Linux, pré-configurada com uv como gerenciador de pacotes para instalação rápida de dependências.
uv Package Manager - Instalação de pacotes 10-100x mais rápida que piptux (UID 1000) por segurança/opt/venvdumb-init para propagação correta de sinaisdocker run -it matbrands/python:3.12
docker run -e GIT_TOKEN=seu_github_token \
-e GIT_REPO=seu_usuario/seu_repositorio \
-e BRANCH=main \
matbrands/python:3.12
Variáveis de Ambiente:
| Variável | Obrigatória | Descrição | Padrão |
|---|---|---|---|
GIT_TOKEN | ❌ | Token de autenticação GitHub (para repos privados) | - |
GIT_REPO | ❌ | Repositório no formato usuario/repo | - |
BRANCH | ❌ | Branch do repositório a clonar | main |
CUSTOM_PATH | ❌ | Caminho customizado dentro do workdir (/opt/python) | /opt/python |
ENTRYPOINT | ❌ | Script de entrada (não utilizado atualmente) | main |
docker run matbrands/python:3.12 python --version
docker run -v /seu/local:/opt/python \
-e CUSTOM_PATH=seu/script \
matbrands/python:3.12
services:
python:
image: matbrands/python:3.12
environment:
- GIT_TOKEN=${GIT_TOKEN}
- GIT_REPO=seu_usuario/seu_repositorio
- BRANCH=main
volumes:
- ./seu_codigo:/opt/python
working_dir: /opt/python
/opt/python # Diretório de trabalho
├── requirements.txt # Dependências (instaladas automaticamente)
│
/opt/venv # Python Virtual Environment
├── bin/
│ └── python
├── lib/
│ └── python3.12/
│
/opt/entrypoint.sh # Script de inicialização
/home/tux # Home do usuário não-root
APP_VERSION=3.12 # Versão do Python
USER=tux # Usuário para execução
USER_ID=1000 # UID do usuário
HOME=/home/tux # Home directory
WORKDIR=/opt/python # Diretório de trabalho
VIRTUAL_ENV=/opt/venv # Caminho do venv
PATH=$PATH:$HOME/.local/bin:$VENV/bin
O script entrypoint.sh implementa a seguinte lógica:
Se GIT_TOKEN e GIT_REPO estão definidas:
main)PYTHONPATH para incluir o repositórioSe nenhuma variável Git está definida:
Se um comando for passado:
docker run matbrands/python:3.12 python -c "import pydantic; print(pydantic.__version__)"
docker run \
-e GIT_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-e GIT_REPO=minhaorg/meu-projeto \
-e BRANCH=develop \
-e CUSTOM_PATH=src \
matbrands/python:3.12
FROM matbrands/python:3.12
RUN uv pip install --no-cache-dir \
pandas \
numpy \
scikit-learn
docker run -it \
-v $(pwd):/opt/python \
-w /opt/python \
matbrands/python:3.12 \
bash
dumb-init para evitar processos zumbisuv é ~10-100x mais rápida que pip# Verificar se o GIT_TOKEN está correto
echo "Token: ${GIT_TOKEN}"
# Verificar permissões do token (deve ter acesso repo)
curl -H "Authorization: token ${GIT_TOKEN}" https://api.github.com/user
# Verificar formato correto do repositório
# Deve ser: usuario/repo (sem https:// ou .git)
# Verificar estrutura do repositório clonado
docker run -it \
-e GIT_TOKEN=seu_token \
-e GIT_REPO=usuario/repo \
matbrands/python:3.12 \
find /opt/python -type f -name "*.py" | head -10
# Ativar venv manualmente
docker run matbrands/python:3.12 \
bash -c "source /opt/venv/bin/activate && python --version"
# Clone ou navegue até a pasta contendo o Dockerfile
cd docker/python
# Build com versão padrão (3.12)
make build
# Build com versão específica
docker build \
--build-arg APP_VERSION=3.12 \
-f ./build/Dockerfile ./build/ \
-t seu-usuario/python:3.12
3.12 (atual, recomendado)APP_VERSION no buildEsta imagem é construída sobre:
Para reportar problemas ou sugerir melhorias, entre em contato com o maintainer.
Proprietary - Desenvolvido por Indicium AI
Matheus M. Brandão
📧 [email protected]
Última atualização: 2026-05-11
Content type
Image
Digest
sha256:c67cae59a…
Size
465.9 MB
Last updated
3 months ago
docker pull matbrands/python