Seria possível tornar o parâmetro shm_size uma opção no app.yml? Enfrentei este erro hoje ao tentar executar um vacuum analyze:
ERROR: could not resize shared memory segment
O sistema tentava aumentar o uso de memória compartilhada para 1 GB, mas falhou, pois o padrão é de apenas 512 MB. Este parâmetro parece estar no script do lançador, mas seria bom tê-lo como uma opção (possivelmente comentado por padrão) no arquivo .yml.
Isso não funcionou quando tentei, infelizmente. Acredito que talvez o contêiner precise ser recriado para aumentar o tamanho do espaço de memória compartilhada? Tive que alterar o valor nas áreas com código fixo no script de inicialização e depois recriar o contêiner para que isso realmente surtisse efeito.
Isso provavelmente não persistiria em atualizações/recriações também — você teria que alterá-lo manualmente toda vez.
No início, eu apenas parei o contêiner e depois executei o comando de inicialização do launcher com aquele parâmetro. Em seguida, editei manualmente os parâmetros --shm-size dentro do próprio script do launcher e reconstruí o contêiner. Depois disso, o valor foi ajustado corretamente. Se você substituir o parâmetro na linha de comando para reconstruir o contêiner, a alteração não será perdida se você realizar uma atualização/reconstrução pela interface /admin/upgrade? É por isso que achei que seria melhor torná-lo um campo no app.yml — assim, ele persistiria nas reconstruções e atualizações de código.
Enquanto isso (para fins de teste, veja a ressalva abaixo), você pode alterar isso diretamente com o docker após a construção do container, da seguinte forma:
Edite diretamente o arquivo /var/lib/docker/containers/$CONTAINER_ID/hostconfig.json.
Por exemplo, altere o valor de ShmSize no arquivo acima.
Pare e reinicie o container.
No nosso arquivo hostconfig do container docker, ele se parece com isto:
Ressalva: Algumas pessoas postaram que você deve garantir que o serviço do docker esteja parado antes de modificar o hostconfig.json (ou as alterações serão sobrescritas). No entanto, eu não testei isso na prática. Obviamente, uma solução launcher é melhor