Estou recebendo este erro ao tentar executar d/boot_dev --init:
Errno::EACCES: Permissão negada @ dir_s_mkdir - tmp
/src/config/boot.rb:23:in `<top (required)>'
/src/config/application.rb:16:in `require'
/src/config/application.rb:16:in `<top (required)>'
/src/Rakefile:7:in `require'
/src/Rakefile:7:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(Veja o rastreamento completo executando a tarefa com --trace)
```\nAlguma ideia de como corrigir? Tentei pesquisar por isso em todos os lugares, mas não encontrei nenhuma solução.
Edição: corrigi executando `chmod -R 777 ~/discourse`, mas agora estou recebendo este erro:
`gifsicle worker: gifsicle não encontrado; por favor, forneça o binário adequado ou desabilite este worker (argumento --no-gifsicle ou :gifsicle => false através das opções)`
Como usar plugins nesse tipo de configuração?
Estou tentando seguir Install plugins on a self-hosted site, mas o artigo menciona o arquivo /var/discourse/containers/app.yml, que não existe no meu diretório discourse.
Consegui configurar um ambiente de desenvolvimento do Discourse e testar meu patch, mas como faço para aplicar meu patch na minha instância de produção? Tentei construir a imagem base e depois executar ./launcher rebuild app --run-image discourse/base:build, mas isso não parece resultar em uma instância do Discourse em execução.
Normalmente, recebo um erro sobre o grupo syslog ausente, mas comentei essa parte e mesmo assim não obtive um site em execução. Além disso, não há nada relevante nos logs do Docker.
Nós não documentamos muito esse tipo de coisa, mas você geraria um arquivo “diff” e aplicaria o diff com o git em um hook após clonar o repositório. O app.yml suporta hooks.
Uma solução rápida e suja para coisas auto-hospedadas em um único container é apenas editar o código no local e executar sv restart unicorn.
Não tenho certeza se este é o melhor lugar para fazer essa pergunta, mas não consegui concluir a instalação do Discourse usando Docker em um computador Apple M1.
Depois que executo d/boot_dev --init, todas as dependências são instaladas sem nenhum problema aparente, mas assim que chego à etapa Migrating database, o processo fica parado consumindo 100% de um dos meus núcleos e não parece avançar.
Tentei fazer login no contêiner Docker e a tarefa bundle migrate está rodando a 100%, mas não há atividade aparente no processo do PostgreSQL.
Tentei brevemente hoje e fiquei preso na mesma etapa que você, mas com um erro:
Invalid gemspec in [/usr/local/lib/ruby/gems/2.7.0/specifications/default/zlib-1.1.0.gemspec]: Malformed version number string specification_version
bundler: failed to load command: rake (/usr/local/bin/rake)
Sim, por favor faça isso. Temos vários membros da equipe usando o Discourse em M1 (eu incluso) todos os dias, então funciona muito bem!
Tentei isso hoje e também encontrei problemas. O erro que vi ocorreu porque a emulação de arquitetura do Docker não suporta inotify (que usamos bastante no desenvolvimento do Discourse). Por enquanto, adicionei um aviso ao d/boot_dev quando uma arquitetura diferente de x86_64 for detectada:
❯ d/boot_dev
AVISO: A arquitetura do Docker não é x86_64.
É improvável que o desenvolvimento do Discourse funcione usando a emulação de arquitetura do Docker.
Por favor, tente uma instalação de desenvolvimento nativa.
Agora adicionei um helper d/ember-cli e encaminhei a porta 4200 por padrão. As informações no topo deste tópico também foram atualizadas. Após atualizar, execute d/rails s em um terminal e d/ember-cli em outro. Também configurei NO_EMBER_CLI como uma das variáveis passadas para o Docker, caso seja necessário.
@david, provavelmente irrelevante, mas só pra avisar: o script boot_dev imprime um falso erro na verificação de x86_64 quando eu acidentalmente executei sem Docker em… (mas a parte ‘O daemon do Docker está rodando?’ está correta)…
AVISO: A arquitetura do Docker não é x86_64.
É improvável que o desenvolvimento do Discourse funcione usando a emulação de arquitetura do Docker.
Tente uma instalação nativa de desenvolvimento.
...(omitido)...
Não foi possível conectar ao daemon do Docker em unix:///var/run/docker.sock. O daemon do Docker está rodando?
Obrigado pela imagem e pelas instruções superclaras!
Ao executar d/boot_dev --init, recebi o erro psql: error: FATAL: Peer authentication failed for user "postgres".
Embora o arquivo pg_hba.conf em data/postgres/ tivesse todos os métodos de autenticação configurados como “trust”, havia outro em /etc/postgresql/13/main/ com os padrões (“peer” / “md5”).
Editei /etc/postgresql/13/main/pg_hba.conf, alterei todos os métodos para trust, executei d/shell e depois sv restart postgres para aplicar as alterações – e consegui continuar executando manualmente d/bundle install; d/rake db:migrate RAILS_ENV=development; d/rake admin:create.