{"id":27939451,"url":"https://github.com/lmuffato/docker-data-science-anaconda","last_synced_at":"2026-04-09T17:05:00.472Z","repository":{"id":291701522,"uuid":"978469899","full_name":"lmuffato/docker-data-science-anaconda","owner":"lmuffato","description":"Automatização de ambiente docker de ciência de dados com anaconda, spyder desktop, mysql, postgres, mongodb, mongo-express e acesso a placa de vídeo da nvidia via container docker..","archived":false,"fork":false,"pushed_at":"2025-05-06T04:24:04.000Z","size":11417,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T09:56:42.643Z","etag":null,"topics":["anaconda","docker","docker-compose","fastapi","jupyter-notebook","mongo-express","mongodb","mysql","postgresql","python","spyder"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/lucasmuffato/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmuffato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-06T03:22:40.000Z","updated_at":"2025-05-06T04:24:07.000Z","dependencies_parsed_at":"2025-05-06T05:36:55.441Z","dependency_job_id":null,"html_url":"https://github.com/lmuffato/docker-data-science-anaconda","commit_stats":null,"previous_names":["lmuffato/docker-data-science-anaconda"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmuffato%2Fdocker-data-science-anaconda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmuffato%2Fdocker-data-science-anaconda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmuffato%2Fdocker-data-science-anaconda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmuffato%2Fdocker-data-science-anaconda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmuffato","download_url":"https://codeload.github.com/lmuffato/docker-data-science-anaconda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmuffato%2Fdocker-data-science-anaconda/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259143701,"owners_count":22811908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anaconda","docker","docker-compose","fastapi","jupyter-notebook","mongo-express","mongodb","mysql","postgresql","python","spyder"],"created_at":"2025-05-07T09:53:54.002Z","updated_at":"2025-12-30T19:58:07.358Z","avatar_url":"https://github.com/lmuffato.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ambiente docker completo para data science a analytics\n\n# 📦 O que esse ambiente tem:\n✅ Acesso a variáveis de ambiente;\u003cbr/\u003e\n✅ anaconda;\u003cbr/\u003e\n✅ spyder;\u003cbr/\u003e\n✅ jupyter;\u003cbr/\u003e\n✅ mysql;\u003cbr/\u003e\n✅ postgres;\u003cbr/\u003e\n✅ mongodb;\u003cbr/\u003e\n✅ mongo-express;\u003cbr/\u003e\n\n# 🐋 Por que usar um ambiente em container?\n✅ O ambiente é o mesmo independente da máquina em que é hospedado;\u003cbr/\u003e\n✅ O ambiente é construído com apenas um comando;\u003cbr/\u003e\n✅ Você pode ter vários bancos de dados de teste;\u003cbr/\u003e\n✅ Não interfere na configuração da sua máquina;\u003cbr/\u003e\n\n# 📦 Vá de acordo com sua necessidade\nEsse ambiente tem muitas coisas que você pode precisar, mas provavelmente você não vai precisar de tudo isso ao mesmo tempo;\u003cbr\u003e\nSe você não precisa de bancos de dados, você comentar ou excluir as linhas desse serviço no `compose.yaml`, afinal, se você não vai usar mysql, postgres ou mongodd, não há a necessidade de consumir recursos para isso.\u003cbr/\u003e\nVocê também pode comentar os pacotes que você não vai utilizar no arquivo `requeriments.txt`, ou no `DockerFile`, como o tensorflow ou pyspark (linha 79 e 81);\u003cbr/\u003e\n\nVocê pode decidir deixar o ambiente com a configuração completa, isso pode ser útil para muitos tipos de testes e análises, porém fique ciente que a imagem pode demorar alguns minutos para ser construída na primeira vez em que for executada, pois atualmente o ambiente completo tem 20 GB.\u003cbr/\u003e\n\n# 🛠️ INSTALAÇÃO\n\n**⚠️ ATENÇÃO!**\u003cbr/\u003e\nAntes de proceder, verifique se o `docker` e o `docker-compose` estão instaldos na sua máquina, utilizando os comandos abaixo:\n```bash\ndocker --version\ndocker-compose --version\n```\n\n**⚠️ ATENÇÃO!**\u003cbr/\u003e\nAntes e executar \n\n### Passos para executar o projeto:\n\n### 1. Clonar o projeto:\n```bash\n git clone git@github.com:lmuffato/docker-data-science-anaconda.git\n```\n\n# 2. Linux\n\n### Montar o container da aplicação:\n#### 2.1. Montar o projeto através do script automatizado `start.sh`:\u003cbr\u003e\n\n**⚠️ ATENÇÃO!**\u003cbr/\u003e\nO script automatizado funciona apenas em ambiente `linux`. \u003cbr\u003e\n\n#### 2.2. Abra o terminal na raiz do projeto e execute o comando:\n```bash\nchmod +x start.sh\n```\nObservação: Só é necessário conceder permissão uma única vez.\u003cbr\u003e\n\n#### 2.3. Executar o script:\n```bash\n./start.sh\n```\n\n✅ Após a execução do script, a aplicação estará pronta e em funcionamento através do container.\n\n# 3. Windows\n\n#### 3.1. Montar o projeto `manualmente` com os comandos docker:\n\n#### 3.2. Criar o arquivo `.env` a partir do `.env.example`:\n```bash\ncp .env.example .env\n```\n\n#### 3.3. Montar o container:\nDentro da pasta backend, digite o comando abaixo:\n```bash\ndocker-compose -p datascience up -d --build\n```\n\n#### Em caso de erro ao montar o container, faça a montagem sem a utilização de cache, ignorando imagens as existentes:\n```bash\ndocker-compose -p datascience up -d --build --no-cache\n```\n**⚠️ OBSERVAÇÃO:**\u003cbr/\u003e\nO nome do container deve ser o mesmo definido no `.env`.\n\n\n✅ Após a execução dos comandos, a aplicação estará pronta e em funcionamento através do container.\n\n# 4. Uso da GPU no container:\n\nCaso a máquina Host não tenha GPU, abra o arquivo `compose.yaml` na raiz do projeto e comente as linhas: \u003cbr\u003e\n21, 22, 36, 37, 38, 39 e 40\n\u003cbr\u003e\n\nCaso a máquina Host tenha GPU Nvidia compatível, para que o container tenha acesso a todos os recursos da GPU, é necessário instalar o `NVIDIA Container Toolkit` na máquina `host`.\n\nVocê pode encontrar informações de como instalar o Toolkit no site oficial da nvidia:\n```\nhttps://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html\n```\n\nSe a GPU for reconhecida com suceso, ao executar o comando abaixo dentro do container, irá retornar informações da placa:\n```\nnvidia-smi\n```\n\n# 5. Spyder:\nBasta executar o comando abaixo no terminal:\n```\n./spyder-run.sh\n```\n\nOu entrar dentro do terminal do container e executar:\n```\nspyder\n```\n\n**⚠️ OBSERVAÇÃO:**\u003cbr/\u003e\n1. Por padrão, o Spyder usa o diretório de trabalho `home/user`.\nVá em configurações do spyder e mude o diretório para a raiz do projeto, isso vai evitar de ter que declarar o workdir para importar os arquivos e além disso, esse diretório não persiste informações após deletar o container, por isso deve-se usar o diretório padrão da raíz do projeto.\n\n2. As versões mais rescentes do spyder, quase sempre travam ao encerrar ou reiniciar o spyder, sendo necessário encerrar no host ou pausar o container. Um pequeno incoveniente a ser corrigido.\n\n# 6. Jupyter\nPara executar o jupyter, basta executar o script abaixo:\n```\n./jupyter-run.sh\n```\n\nO jupyter será disponível no navegador acessível pelo link:\n```\nhttp://localhost:8889/tree?\n```\n\nPara cancelar o servidor, basta apertar `Ctrl C` no terminal que está executando.\n\n**⚠️ OBSERVAÇÃO:**\u003cbr/\u003e\nSe o valor de `JUPYTER_REQUIRES_AUTHENTICATION` for `True` no .env, o script irá salvar o link com token de acesso para o jupyter, e é só copia e colar no navegador.\n\n# 7. mongo-express\n\nO mongo-express é uma interface para acessar o banco de dados do mongodb, muito útil pois não depende de instalação na máquina.\nAcessível por:\n```\nhttp://localhost:8081/\n```\n\n# 8. Bancos de dados: `mongodb`, `mysql` e `postgres`:\nCaso não vá utilizar esses bancos de dados, pode-se comentar os blocos das imagens no `compose.yaml`, poupando memória.\n\n# INFORMAÇÕES:\nA pasta `data_files` tem o propósito de armazenar arquivos de dados, como `csv`, `parquet`, `xlsx` e etc... Nada dentro dessa pasta será enviado ao github.\n\nIntercâmbio de IDES:\nÉ possível criar um arquivo no spyder ou jupyter e editar e salvar no VsCode ou outra IDE. O fluxo contrário também é possível.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmuffato%2Fdocker-data-science-anaconda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmuffato%2Fdocker-data-science-anaconda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmuffato%2Fdocker-data-science-anaconda/lists"}