Corrige permissão do volume de clientes/ via entrypoint, não build
RUN chown no Dockerfile só atinge a imagem: o bind mount de clientes/ substitui o diretório (dono incluído) ao subir o container, apagando qualquer chown feito em build. entrypoint.sh roda como root no início do container, ajusta o dono do volume recém-montado e derruba privilégio para o usuário sd (via gosu) antes do gunicorn. .gitattributes fixa LF em *.sh: autocrlf do Git no Windows senão reescreveria o script para CRLF, quebrando o shebang dentro do container. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+5
-3
@@ -5,10 +5,12 @@
|
||||
# clientes/ está no .gitignore, então o clone nunca traz esses dados:
|
||||
#
|
||||
# scp -r clientes/ usuario@vps:/dados/exporta-sd/clientes
|
||||
# ssh usuario@vps 'sudo chown -R 10001:10001 /dados/exporta-sd/clientes'
|
||||
#
|
||||
# O chown usa o UID do usuário `sd` da imagem. Sem ele, a leitura funciona e o
|
||||
# "Salvar SD.md" falha com permissão negada — falha parcial, difícil de ler.
|
||||
# Não precisa de chown manual: o entrypoint.sh da imagem roda como root no
|
||||
# início do container e ajusta o dono do volume para o usuário `sd` antes de
|
||||
# derrubar privilégio e subir o gunicorn — ver entrypoint.sh e o ENTRYPOINT
|
||||
# no Dockerfile. (Uma reconsequência: cada `scp` novo devolve os arquivos ao
|
||||
# usuário do ssh no host; some sozinho no próximo restart do container.)
|
||||
# Depois, no Coolify → Environment Variables, aponte o volume para lá:
|
||||
#
|
||||
# CLIENTES_DIR=/dados/exporta-sd/clientes
|
||||
|
||||
Reference in New Issue
Block a user