Alterar caminho para executável do git para instalação do Discourse Docker

Olá a todos,

Obrigado pelo ótimo aplicativo de fórum! Por favor, me perdoem como um novato tanto no Docker quanto no Discourse, caso seja uma pergunta trivial. Sistema: Ubuntu LTS 20.04

Resumo: Existe alguma maneira de usar o git instalado em outro lugar que não seja /usr/bin?

Detalhes: Instalei manualmente uma nova versão do git (2.31.1) em /usr/local (para me livrar do link para libgnutls e do erro gnutls_handshake()) e adicionei /usr/local/bin ao PATH. No launcher, adicionei echo $PATH && which git antes de cd /pups/ em run_command, e ao executar ./launcher rebuild app, obtenho:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin/:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
/usr/bin/git

Isso significa que todas as ações subsequentes do git estão, na verdade, usando /usr/bin/git? Nesse caso, eu esperaria que o git fosse encontrado em /usr/local/bin.

Na verdade, não me lembro de ter instalado o git em /usr via apt-get ou de alguma outra maneira. Então, acredito que isso esteja relacionado à forma como o Docker funciona; há alguma maneira de personalizar isso?

Obrigado novamente!
minye

Olá a todos,

Para quem por acaso estiver aqui, consegui fazer isso criando uma nova imagem, marcada como newgit, a partir da imagem base oficial do Discourse e, em seguida, instalando o Discourse sobre ela, modificando a variável image no launcher.

As principais instruções no Dockerfile estão abaixo. Todas as dependências (perl, gcc, etc.) são tratadas pela imagem base.

# instalar um git sem gnutls
RUN cd / && \
    vcurl=7.68.0 && wget http://dl.uxnr.de/mirror/curl/curl-$vcurl.tar.gz && \
    vssl=1.1.1f && wget http://www.openssl.org/source/openssl-$vssl.tar.gz && \
    vgit=2.31.1 && wget http://mirrors.edge.kernel.org/pub/software/scm/git/git-$vgit.tar.gz && \
    tar -zxf curl-$vcurl.tar.gz && tar -zxf openssl-$vssl.tar.gz && \
    tar -zxf git-$vgit.tar.gz && \
    cd openssl-$vssl && ./config --prefix=/usr/local && make && make install && cd .. && \
    cd curl-$vcurl && ./configure --with-ssl=/usr/local --prefix=/usr/local --without-gnutls --disable-ldap --without-librtmp && make && make install && cd .. && \
    cd git-$vgit && make configure && ./configure --prefix=/usr/local --with-openssl=/usr/local --with-curl=/usr/local && make && make install && cd ../ && \
    rm -rf /curl-${vurl}* /openssl-${vssl}* /git-${vgit}*
# verificar a instalação do git
RUN which git && git version && (ldd -v /usr/local/libexec/git-core/git-remote-https | grep gnutls) || echo "Git não está vinculado à libgnutls"

e resulta em /usr/local/bin/git.

Estou ciente de que isso é uma solução alternativa suja e não recomendada pela equipe de desenvolvimento. Coloquei aqui apenas como referência de um leigo em Docker, caso alguém tenha uma necessidade semelhante.