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>
14 lines
607 B
Bash
14 lines
607 B
Bash
#!/bin/sh
|
|
# Roda como root no início do container — DEPOIS que os volumes já estão
|
|
# montados. É por isso que este chown existe aqui e não no Dockerfile: um
|
|
# RUN chown no build só atinge a imagem, e o bind mount de clientes/ (e de
|
|
# _derivados/) substitui o diretório — dono incluído — ao subir o container,
|
|
# apagando qualquer chown feito em tempo de build.
|
|
#
|
|
# Sem `|| true` de propósito: se o chown falhar, é melhor a subida quebrar
|
|
# alto agora do que o "Salvar SD.md" falhar baixo, depois, com permissão
|
|
# negada.
|
|
set -e
|
|
chown -R sd:sd /app/clientes /app/_derivados
|
|
exec gosu sd "$@"
|