Imagem do Docker discourse/discourse é considerada segura e pronta para produção?

Olá equipe do Discourse,

Atualmente, estamos avaliando a imagem Docker disponível aqui: https://hub.docker.com/r/discourse/discourse

Esta imagem foi publicada muito recentemente (há menos de 24 horas, no momento em que escrevo), e não consegui encontrar referências a ela na documentação oficial.

Minha pergunta é:

  • Esta imagem Docker é mantida e suportada oficialmente pela equipe do Discourse para uso em produção?
  • Ou é uma imagem experimental que pode ser removida ou alterada inesperadamente?

Queremos confirmar se é seguro confiar nesta imagem em nossos ambientes de produção.

Obrigado

2 curtidas

Acredito que a imagem do Docker seja https://hub.docker.com/r/discourse/base/. (5M+ downloads vs 800+) Veja:

O repositório Docker sempre conterá a versão mais recente criada em: https://hub.docker.com/r/discourse/base/, você não deve precisar criar a imagem base.

2 curtidas

Obrigado pela sua resposta, eu sei disso. Mas eu não consegui rodar facilmente aquela imagem discourse/base com Docker Compose. Esta nova imagem discourse/discourse torna a configuração muito mais simples e funciona bem, mas eu quero entender seu propósito e se posso usá-la em produção.

1 curtida

Dê uma olhada em:

1 curtida

discourse/discourse é novo, mas ainda experimental, então não recomendo usá-lo em produção. Certamente publicaremos mais informações se/quando isso mudar.

No momento, o único método que podemos suportar é a instalação padrão.

11 curtidas

Como descrito, a maneira suportada de auto-hospedar é seguir a instalação padrão. Se você não quiser fazer isso, então você está meio que por conta própria. Se você quiser lançar com docker-compose, o que eu recomendo é usar o launcher para construir sua imagem, enviá-la para um repositório próprio e então usar ./launcher start-cmd web_only para obter as variáveis de ambiente necessárias e outras para lançá-la. E você ainda precisará fazer algo para garantir que o banco de dados seja migrado, os assets compilados, etc.

Você também pode se esforçar para fazer com que o github construa imagens para você e elas migrem e assim por diante quando lançadas (como um dia será fornecido pela CDCK, ao que parece). Eu fiz isso para clientes no passado. (Feliz em ajudar se você tiver um orçamento.)

Se você gosta de viver no limite, provavelmente está bem seguro usando a versão “experimental” com a ressalva de que precisará ter um site de staging onde testará cada nova implantação antes de enviá-la para produção e estar preparado para ter que esperar um tempo e/ou fazer algo que exija um conhecimento profundo do discourse para avançar. O pior caso (provavelmente) é que você precisará estar preparado para fazer um backup e restaurar para uma instalação padrão até que a coisa experimental esteja pronta para o uso principal.

1 curtida

Você tem uma data de lançamento estimada ou um cronograma para quando discourse/discourse pode ser considerado estável/pronto para produção?

Além disso, gostaria de confirmar: a imagem Docker discourse/discourse é de código aberto e, em caso afirmativo, você poderia fornecer o link do repositório GitHub?

3 curtidas

Não tenho nenhum cronograma/garantia no momento. Mas esperamos ter mais informações para compartilhar nas próximas semanas.

Sim, é tudo de código aberto. É construída e publicada regularmente por este fluxo de trabalho do GitHub actions: discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub

7 curtidas

Obrigado pelas informações e por compartilhar o link do GitHub, muito apreciado!

3 curtidas

Sim, está se tornando um segredo aberto o que está por vir :slight_smile:

Você pode obter uma prévia técnica do que está por vir, mas como David disse, ainda não podemos dar suporte oficial. Há muitas documentações para planejar, casos extremos para testar, etc… então não podemos recomendá-lo para produção até que resolvamos essas coisas.

8 curtidas

@david / @featheredtoast, vocês e o resto da equipe fizeram um ótimo trabalho aqui.

Acabei de mudar de bitnami/discourse para discourse/discourse para testes automatizados e está funcionando muito bem. Obviamente, meu caso de uso é perfeito - iniciar um novo fórum, executar testes, excluir.

Então, só queria agradecer muito. Tenho certeza de que muitos outros se beneficiarão disso também, especialmente quando se tornar estável / oficial / suportado.

6 curtidas

Situação semelhante, eu estava procurando uma maneira rápida de configurar o Discourse em uma configuração Docker Compose para facilitar aos desenvolvedores a criação de uma integração SSO. Isso parece funcionar muito bem (configuração abaixo para quem estiver interessado):

docker-compose.yml
volumes:
  redis_data: {}
  discourse_data: {}
  discourse_postgres: {}
  discourse_postgres_data: {}

services:
  mailpit:
    image: docker.io/axllent/mailpit:latest
    container_name: mailpit
    ports:
      - '8025:8025'

  redis:
    image: redis:7-alpine
    container_name: redis
    volumes:
      - redis_data:/data
    ports:
      - '6379:6379'
    command: redis-server --appendonly yes

  discourse_db:
    image: discourse/postgres
    container_name: discourse_db
    volumes:
      - discourse_postgres:/var/lib/postgresql
      - discourse_postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB: discourse
      - POSTGRES_USER: admin
      - POSTGRES_PASSWORD: admin_password
      - DB_USER: discourse_user
      - DB_PASSWORD: discourse_user_password

  discourse:
    image: discourse/discourse:3.5.1
    container_name: discourse
    depends_on:
      - discourse_db
      - redis
      - mailpit
    ports:
      - '80:80'
    volumes:
      - discourse_data:/shared
    environment:
      - DISCOURSE_HOSTNAME: localhost
      - DISCOURSE_DEVELOPER_EMAILS: admin@example.com
      - DISCOURSE_DB_HOST: discourse_db
      - DISCOURSE_DB_PORT: 5432
      - DISCOURSE_DB_NAME: discourse
      - DISCOURSE_DB_USERNAME: discourse_user
      - DISCOURSE_DB_PASSWORD: discourse_user_password
      - DISCOURSE_REDIS_HOST: redis
      - DISCOURSE_REDIS_PORT: 6379
      - DISCOURSE_SMTP_ADDRESS: mailpit
      - DISCOURSE_SMTP_PORT: 1025
      - DISCOURSE_SMTP_ENABLE_START_TLS: false
      - DISCOURSE_SMTP_AUTHENTICATION: none
      - LANG: en_US.UTF-8

Aguardo ansiosamente por notícias sobre planos ou cronogramas futuros, adoraria poder executar isso em algo como o Digital Ocean App Platform (algo que os clientes pudessem gerenciar com menos conhecimento técnico).

3 curtidas

Ah, obrigado por compartilhar, @JackNZ. Eu nem percebi a imagem discourse/postgres :sweat_smile: Terei que consertar isso. Mesmo assim, compartilharei onde estou também. Talvez o mais interessante seja o script start.sh aqui que, embora precise de alguma limpeza, criará um usuário administrador, uma chave de API e desativará os limitadores de taxa.

2 curtidas