Estou tentando configurar o Discourse para minha organização no Kubernetes. No entanto, estou enfrentando alguns problemas.
Quando tento implantar a imagem inicializada no Kubernetes, ele tenta executar ações como git pull pups e git pull discourse, o que não funciona, pois estou em uma rede privada sem acesso à internet. Como resultado, o contêiner não inicia. Existe alguma maneira de pular essas etapas para que eu possa fazer a implantação?
Tem certeza de que está implantando uma imagem já inicializada? Parece que você enviou a imagem errada para o seu registro.
Ah, é? Estou usando a imagem criada por ./launcher bootstrap app.
Então você está dizendo que a imagem final bootstrap não deve ter nenhuma dessas dependências?
Não, não terá. Após a inicialização, haverá uma imagem local_discourse/app. É essa que você precisa enviar para o registro e usar em outros lugares.
Uma última dúvida: parece que eu estava enviando a imagem errada, minha culpa. Então, depois de enviar a imagem correta, posso alterar as variáveis de ambiente durante a implantação no k8s, certo? Como DISCOURSE_DB_HOST, etc? Porque tenho um cluster PostgreSQL separado e um cluster Redis!
Já passei por isso. Sem problemas, é um erro muito comum. Por isso eu perguntei ![]()
Bem, é complicado.
Embora você possa facilmente sobrescrevê-las, basta adicionar a variável de ambiente ENV necessária à execução do contêiner. Durante o bootstrap, executamos as migrações. Se você tentar apontar a imagem para um banco de dados diferente após o bootstrap, o esquema do banco de dados ficará completamente incorreto. Fazer isso colocaria você firmemente no território da #instalação_não_suportada.
Então, eu já tenho uma instância do Discourse em execução, mas ela está em bare metal. Quero migrá-la para o Kubernetes e conectá-la ao mesmo banco de dados que a versão em bare metal estava usando.
Ou, se possível, posso refazer o bootstrap com DISCOURSE_DB_HOST e DISCOURSE_DB_NAME apontando para o mesmo banco de dados que o bare metal está usando?
Isso deve funcionar!
Você pode querer parar o contêiner Discourse atual conectado ao banco de dados enquanto faz isso, pois as migrações podem fazê-lo se comportar de maneira quebrada.
Se eu criar um novo banco de dados vazio e fazer o bootstrap usando ele, será possível migrar os dados pela interface (usando a interface da instância antiga do Discourse e da nova instância do Discourse), como em /admin/backups? Quero evitar corromper o banco de dados antigo, pois ele está sendo usado por muitos usuários.
Você não pode migrar a partir da interface de usuário.
Veja Apresentando a Migração Pós-Implantação. Isso permite que você migre o banco de dados de modo que funcione tanto para o contêiner antigo quanto para o novo, e então realize as migrações finais após a implantação.
Bem, tentei o que você disse (enviei a imagem bootstrapada), mas parece que ainda estou recebendo o mesmo erro.
fatal: unable to access 'https://github.com/discourse/pups.git/': Failed to connect to github.com port 443: Connection timed out
Estou em uma rede privada, então não consigo acessar o github.com.
@pfaffman @Falco, isso é esperado? Estou rodando isso no k8s.
Isso significa que você enviou a imagem errada, novamente.
Eu alteraria o arquivo interno /etc/hosts para imitar os recursos que você deseja… e então adicionaria o necessário.
Ainda mais fácil… coloque um modem/roteador com conexão 4G/sim. Faça a rede reconhecer esse dispositivo como o roteador padrão da sua rede interna… conecte… faça o trabalho… desconecte.
É bem simples.
Abraços
Keith John Hutchison - Ceiteach Seán Mac Úistin
Bringing Data to Life Pty. Ltd. (BD2L)
Desta vez, parece que tenho quase certeza
Existe alguma possibilidade de algo estar dando erro durante
./launcher bootstrap app
Além disso, até tentei usar a imagem atual do Discourse que está rodando em bare metal e hospedando nosso site Discourse atual, e a usei no k8s, mas isso também falha com o mesmo erro mencionado acima.
Até mesmo na minha máquina local, quando executo
docker run local_discourse/app
sem internet, parece que obtenho o erro acima