Procedimentos Operacionais Padrão do Sistema Host para o Docker Discourse

Existem muitos artigos sobre como fazer que são ótimos, mas há um que não consigo encontrar ou que talvez nem exista, o qual inclui:

  • Para quem faz auto-hospedagem, como configurar o sistema operacional do host, como o Ubuntu, apenas para hospedar o contêiner Docker.
  • Uma vez que o site esteja em execução, quais são os procedimentos operacionais padrão que se deve adotar com o sistema operacional do host, por exemplo, verificar invasões, como transitar do sistema operacional do host para o contêiner, como armazenar informações básicas em preparação para um problema, etc.

Percebo que, para cada sistema operacional e site diferentes, o manual será diferente, mas há muitas coisas que também serão comuns.

Como o sistema operacional vai rodar apenas um contêiner Docker, haverá arquivos e serviços supérfluos, mas o que é supérfluo? É necessário ter uma interface gráfica e toda a maquinaria e pacotes necessários?

Uma vez que o site esteja em execução, se algo acontecer e o site cair, é necessário ter detalhes do site, como sua configuração, etapas para reconstruir do zero, qual versão do software em execução, etc. Quais desses detalhes importam? Tenho uma boa ideia, mas seria bom ver o que os outros pensam e sabem pela experiência.


Como exemplo, ao criar um POP (Procedimento Operacional Padrão) para nosso site, aqui estão os diferentes resultados do pstree, um do sistema operacional do host e outro de dentro do contêiner Docker. O host realmente precisa de todos esses processos? Nos próximos dias, com certeza saberei a resposta, mas talvez outros já saibam e possam compartilhar conosco.

    systemd─┬─ModemManager───2*[{ModemManager}]
            ├─NetworkManager─┬─dhclient
            │                └─2*[{NetworkManager}]
            ├─accounts-daemon───2*[{accounts-daemon}]
            ├─2*[agetty]
            ├─atd
            ├─containerd─┬─containerd-shim─┬─boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
            │            │                 │                 ├─runsv───cron
            │            │                 │                 ├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
            │            │                 │                 │                         │      ├─6*[ruby───8*[{ruby}]]
            │            │                 │                 │                         │      ├─2*[ruby───9*[{ruby}]]
            │            │                 │                 │                         │      └─5*[{ruby}]
            │            │                 │                 │                         └─sleep
            │            │                 │                 ├─runsv─┬─redis-server───3*[{redis-server}]
            │            │                 │                 │       └─svlogd
            │            │                 │                 ├─runsv─┬─postmaster───9*[postmaster]
            │            │                 │                 │       └─svlogd
            │            │                 │                 └─runsv───nginx───5*[nginx]
            │            │                 └─10*[{containerd-shim}]
            │            └─18*[{containerd}]
            ├─cron
            ├─dbus-daemon
            ├─dockerd─┬─docker-proxy───8*[{docker-proxy}]
            │         ├─docker-proxy───7*[{docker-proxy}]
            │         └─16*[{dockerd}]
            ├─irqbalance───{irqbalance}
            ├─lvmetad
            ├─lxcfs───4*[{lxcfs}]
            ├─networkd-dispat───{networkd-dispat}
            ├─polkitd───2*[{polkitd}]
            ├─rsyslogd───3*[{rsyslogd}]
            ├─sshd───sshd───sshd───bash───pstree
            ├─sudo───docker───11*[{docker}]
            ├─systemd───(sd-pam)
            ├─systemd-journal
            ├─systemd-logind
            ├─systemd-resolve
            ├─systemd-timesyn───{systemd-timesyn}
            ├─systemd-udevd
            └─wpa_supplicant
boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
                ├─runsv───cron
                ├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
                │                         │      ├─6*[ruby───8*[{ruby}]]
                │                         │      ├─2*[ruby───9*[{ruby}]]
                │                         │      └─5*[{ruby}]
                │                         └─sleep
                ├─runsv─┬─redis-server───3*[{redis-server}]
                │       └─svlogd
                ├─runsv─┬─postmaster───9*[postmaster]
                │       └─svlogd
                └─runsv───nginx───5*[nginx]

EDIT

Para uma configuração mínima do Ubuntu, veja: Ubuntu Mínimo
Nota: Ainda não testei isso, apenas passando adiante.

O que é antigo e funciona geralmente ainda é válido. Veja: Discourse em um contêiner Docker por Sam. :grinning:
Oferece muita informação sobre a história do uso do Discourse em Docker e como ele funciona.

2 curtidas