Open yardz opened 3 years ago
Docker é overkill para um aplicativo assim insignificante de simples, né?
Podería se simplificar a instalação sim... mas acho que não da para usar Docker...
Cara, eu sou da opinião que todo projeto deveria ter docker. Até mesmo se for só pra dev. Eu pessoalmente não gosto de instalar nada na minha máquina. Nada de nada mesmo, deixo ela o mais limpa possível.
Então mesmo pra dev, eu acho docker importante e indispensável.
Python tem métodos mais simples:
pip
já isola os pacotes do usuário dos do sistemavenv
: https://docs.python.org/3/tutorial/venv.htmlPelo que eu vi, esse não parece ser o comportamento padrão... Mas mesmo se for, ainda tem a própria instalação do Python. Com docker vc não precisa fazer nem isso...
Cara, novamente, se tiver que instalar 1 coisa (qualquer) eu já prefiro docker.
Você conhece Docker e quer usar ele em tudo, tá bom, mas isso não significa que seja necessário ou o método mais simples/eficiente, para algo tem gerenciadores de pacotes, etc.
O seu docker-compose.yml
deveria ficar algo assim:
services:
speedtest:
network_mode: host
build: .
volumes: .:/opt/SpeedTest
command: python3 /opt/SpeedTest/TestSpeed.py
E o Dockerfile
:
FROM python:latest
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt
Você conhece Docker e quer usar ele em tudo, tá bom, mas isso não significa que seja necessário ou o método mais simples/eficiente, para algo tem gerenciadores de pacotes, etc.
Node tem gerenciador de pacotes o npm
e yarn
, PHP tem o composer
e eu acredito que a maioria das linguagens modernas devem ter algum tipo de gerenciador de pacotes. Isso absolutamente não é uma exclusividade do Python (nem de nenhuma linguagem).
Virtualizar o ambiente é uma coisa completamente diferente de gerenciadores de pacote, a existência de um não invalida ou diminui a importância do outro.
Se você não entende o quão importante é a garantia de um ambiente igual para todos desenvolvedores (ou usuários). Desculpa, mas nem da pra conversar.
Eu não estou negando a utilidade da virtualização, só estava falando de que não precisa virtualização nenhuma, mas...
Não é assim como você fala, pois para o Docker o entorno onde você cria a imagem é parte do input lamentavelmente, então ele não garante repetibilidade. Se você quer um sistema que oferece garantias maiores precisa ir para algo como o Guix (eu recomendo muito você olhar se não conhece).
O Docker é só uma das opções, e não é a melhor para criar as imagens, nem muito menos para correr um aplicativo simples.
O método mais simples é você ter o Python no sistema operacional, e criar um entorno venv
para o aplicativo... você está falando de ter toda a infraestrutura do Docker instalada no sistema para criar algo que ademais é bem mais complexo, e que você não tem jeito de comprovar, então não vai ficar melhor do que seu sistema com o Python.
Ademais, se você quer garantias no desenvolvimento de software, a repetibilidade não é suficiente, nem agregando acima testing; o método deve incluir uma disciplina de qualidade completa, porque você tem que garantir que qualquer cenário onde os desenvolvedores trabalham em paralelo vai produzir uma composição válida depois, e dois aspectos muito importantes são o análise das dependências e o análise estático das propriedades do seu código nesse contexto, para validar o uso dessas APIs (sem entrar no tópico das necessidades internas ou objetivo do seu código). Desse jeito você poder provar que as dependências estão corretas, é você pode atualizar essas dependências, pois é uma loucura você dizer dep==ver
e deixar isso aí 10 anos, assim é como você consegue garantir o software rot.
Perdão, eu já me estendi muito, é um tema muito longo...
Já pensou em criar um docker para executar o script? Vou dar o meu exemplo, eu achei a idéia super interessante, gostaria de usar mas não sei nada de Python...
Pra mim, rodar esse projeto por si só já seria um desafio... Agora se tivesse um docker seria só
docker-compose up
O docker também traria outras vantagens, como por exemplo, facilitaria as pessoas a contribuirem para o repo :-)