diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..95d0532 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,56 @@ +# Dependências que podem ser recriadas +node_modules/ +venv/ +__pycache__/ +.pytest_cache/ +.npm/ +.cache/ + +# Arquivos de controle de versão +.git/ +.gitignore +.gitattributes + +# Arquivos de desenvolvimento +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Arquivos de configuração local e secrets +.env +.env.local +.env.development +.env.staging +*.pem +*.key +config/local.json + +# Logs e arquivos temporários +*.log +*.tmp +*.temp +logs/ +tmp/ + +# Arquivos de build local (devem ser buildados no container) +dist/ +build/ +target/ +out/ + +# Arquivos de documentação (opcional) +README.md +docs/ +*.md + +# Arquivos de teste +coverage/ +.nyc_output/ +test-results/ + +# Arquivos do sistema operacional +.DS_Store +Thumbs.db +desktop.ini \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..121f78d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.13.4-alpine3.22 + +# Define o diretório de trabalho +WORKDIR /app + +# Copia o arquivo de requirements +COPY requirements.txt . + +# Instala as dependências +RUN pip install --no-cache-dir -r requirements.txt + +# Copia o código da aplicação +COPY . . + +# expoe a porta 8000 +EXPOSE 8000 + +# define o comando de execução +CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1892a52 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +services: + app: + build: . #construir a imagem a partir do Dockerfile o ponto está mencionando o diretório atual + container_name: api-test #nome do container + ports: + - 8000:8000 #mapear a porta 8000 do container para a porta 8000 do host conforme definido no Dockerfile com expose 8000 e CMD + volumes: + - .:/app #mapear o diretório atual para o container - conforme voce altera o código, o conteudo do diretório atual é refletido no container sem precisar ficar atualizando manualmente a cada alteração + \ No newline at end of file