Existem os Linux Containers (LXC). Existem scripts de VM. Você poderia criar um instalador ISO.
LXC são literalmente contêineres.
Para administradores de sistemas, essa bobagem de Docker é redundante e inútil se você tiver uma configuração de rede com firewalls, etc.
Eu entendo que esta é uma instalação simples para aqueles que não sabem como usar Linux e protegê-lo, mas para administradores de sistemas, aprender Docker é inútil. LXC e VMs sempre serão muito melhores que Docker.
Para administradores de sistemas que gerenciam servidores, criamos LXC e VMs em uma rede separada. Então, eu criei uma VM dedicada para o Discourse para então criar um contêiner Docker. -_-
Então, agora é uma rede dentro de uma rede. Uma VM dedicada e isolada e apenas para criar um contêiner Docker isolado de tudo -_-
Não há guia para instalá-lo sem Docker, independentemente de vir com suporte ou não. Não há guia ou assistência para expor o IP do host ao contêiner.
Porque quando eles começaram a desenvolver o Discourse, era a melhor coisa disponível.
Se eles fossem fazer isso hoje, eu acho que a única coisa que eles fariam diferente seria usar o docker-compose em vez do seu próprio comando launcher personalizado que constrói e inicia imagens Docker.
Você deve estar em uma internet diferente da minha. Pelo que vejo, a maioria das pessoas que gerenciam software em mais de, digamos, 5 servidores, está usando algum tipo de contêiner para gerenciar as coisas. Cada vez mais desenvolvedores executam coisas em seus laptops em contêineres para garantir que as versões de tudo sejam mantidas consistentes.
Mesmo gerenciar um ambiente de desenvolvimento Discourse/rails/ember em um único laptop é um desafio.
Isso é verdade. Se você quer um fórum que possa usar sem Docker, você não deve usar o Discourse.
Eu apoio isso. O docker-compose seria 100% melhor, pois acabei de assistir a um curso intensivo sobre docker e docker-compose. Parece que se o Discourse usasse o docker-compose, eu teria resolvido esse problema sem precisar criar um post.
O docker-compose faz todo o trabalho pesado, semelhante ao que o launcher faz, mas com o docker-compose eu poderia ter configurado facilmente a rede e a ponte.
Concordo. Eu uso contêineres. Apenas contêineres LxC puros. Nenhum software adicional é necessário. Não é tão simples quanto isso. Por exemplo: Em um dos meus servidores, tenho um pacote bronze que é basicamente para desenvolvedores. Configuração barata e fácil. No momento em que um pagamento é confirmado, o servidor principal recebe uma solicitação para criar um contêiner LXC ou VM com base na seleção do usuário, obviamente um nome de domínio é necessário ou um subdomínio personalizado será emitido para o servidor (LXC/VM). Ele também pede ao usuário para configurar sua própria rede, que então não pode ser acessada pela rede principal e vice-versa. É basicamente uma pequena AWS.
Para desenvolvimento, o docker seria excepcional para laptops e propósitos de desenvolvimento para separar os arquivos principais do computador e os arquivos de desenvolvimento, incluindo redes.
Não posso concordar nem discordar, pois não desenvolvi nada pessoalmente com Discourse/rails/ember. Isso está fora do meu escopo e, se os desenvolvedores dizem que é mais fácil, não cabe a mim discordar de algo que não sei.
Este é o meu problema, pesquisei o suficiente sobre todo o software de fórum disponível e usei alguns deles.
Minhas opções se resumiram a 2 fóruns:
Discourse
Flarum
Eu escolhi o Discourse como o melhor software de fórum em todos os aspectos e devido à minha única experiência com docker, que foi o Nginx Reverse Proxy Manager.
Pensei que tudo o que eu tinha que fazer era inserir algumas das minhas informações no arquivo .yml e depois executar docker-compose up -d. Eu estava errado.
O problema que tenho atualmente pode ser resolvido, vai levar apenas algum tempo para descobrir.
Recuso-me a usar o Flarum porque usei o Discourse em muitas plataformas e, sem ofensa a outros bons softwares de fórum por aí, mas o Discourse é o melhor fórum disponível no mercado.
Talvez uma atualização para o docker-compose possa ajudar
Após fazer uma pesquisa rápida e alguns guias de 5 minutos, além de alguns vídeos no YouTube.
Não, o Docker não é ruim. O Docker é perfeito para desenvolvedores que usam suas máquinas pessoais para desenvolver ou até mesmo computadores de trabalho. Como a maioria dos desenvolvedores não usa Linux como sistema operacional principal, criar contêineres LxC não seria tão fácil. É aí que o Docker entra em jogo. Ele suporta todas as principais plataformas, permitindo que os desenvolvedores colaborem com facilidade, e a vantagem seria não bagunçar todo o seu sistema com arquivos que não devem ser usados pelo sistema operacional principal.
Eu poderia entrar em mais detalhes, mas o Docker/Docker-Compose mais recente é perfeito para o Discourse, pois vejo que ele exigia muitas partes móveis e é muito fácil de agrupar usando o Docker-Compose. Dessa forma, se algo der errado, os desenvolvedores saberão exatamente o que fazer.
Tenho uma ideia para o Discourse, mas primeiro vou resolver minha instalação.
Hospedar aplicações Rails é complicado. Mesmo que você já tenha Postgres, Redis e Ruby instalados em seu servidor, você ainda precisa se preocupar em executar e monitorar seus processos Sidekiq e Rails, além de configurar o Nginx. Com o Docker, nossa configuração totalmente otimizada do Discourse está disponível para você em um contêiner simples, juntamente com uma GUI baseada na web que torna a atualização para novas versões do Discourse tão fácil quanto clicar em um botão.
Você não precisa de um launcher e poderia criar uma instalação personalizada com docker compose, embora isso exigisse um trabalho significativo da sua parte.
O objetivo principal não é o isolamento, mas a facilidade de implantação…
Você não precisa isolar o contêiner; você pode executá-lo em uma bridge roteada ou em uma bridge que tenha uma porta pertencente à sua rede interna. O primeiro é como o executamos em produção - veja aqui um vídeo de @mpalmer que explica como funciona.
Se alguém realmente quiser fazer isso, pode seguir os mesmos passos dados pelo próprio Dockerfile para obter as versões corretas de todas as ferramentas usadas pela imagem suportada.
Não temos um guia, pois isso exigiria que alguém o mantivesse, e a VASTA maioria das pessoas que querem isso tem:
pouca experiência com servidores
conhecimento suficiente para pegar o que fornecemos e adaptá-lo às suas necessidades
Por exemplo, sei que há pessoas por aí que usam o launcher para construir uma imagem que é implantada por meio de suas próprias ferramentas (seja lxc, kubernetes, o que for) e isso funciona para elas.
Tentar suportar (gratuitamente) todos que usam sua própria instalação personalizada de um software complicado seria um pesadelo.
Docker é um meio-termo. Nosso sistema não é perfeito; ele cresceu um pouco ao longo do tempo e certamente sentimos a dor de alguma refatoração atrasada. Criamos o launcher antes mesmo de o docker-compose existir.
Pretendemos refatorá-lo e/ou migrar para o docker-compose, mas isso não é uma prioridade no momento.
Não é tão difícil fazer o launcher iniciar o Discourse com as variáveis de ambiente necessárias para o Nginx Reverse Proxy funcionar. Na maioria das vezes, você apenas adiciona a variável de ambiente ao YML, ou as adiciona ao que você obtém de ./launcher start-command app.
O docker-compose não era muito útil quando o Discourse começou, e talvez nem existisse.
Eu odeio Docker (é fácil demais para mim, qualquer criança consegue, então nada de especial! Bocejo)! E em vez de simplesmente escrever o código para que ele também funcione sem a variante oficial do Docker… não entendo! Nem o método oficial funciona!
E existem pessoas que querem desafios ou até já os dominam! Para elas, o Docker é ainda mais um obstáculo, pois elas também têm que lidar com o Docker!