De onde as permissões da pasta '/tmp' dentro de um contêiner docker herdadas?

Eu tenho um contêiner Docker PHP não conseguiu começar a dizer que 'session_start' don't have permissions on /tmp/xxxx file.

Descobri que a permissão da pasta '/tmp ' é 'drwxr-xr-t'. Quando eu mudar para 'drwxrwxrwt', o recipiente funciona normalmente.

Posso ter feito algo errado com meu sistema host para depurar outro problema não relacionado. Mas não me lembro do que fiz e o que poderia causar o problema acima.

Então, eu quero saber de onde as permissões da pasta '/tmp' dentro de um contêiner docker herdado?

Obrigado antecipadamente. :)

Olhando para a imagem base que você usa, o /tmp as permissões são definidas corretamente:

$ docker run -it --rm php:5-apache ls -ald /tmpdrwxrwxrwt 1 root root 4096 Jan 23 00:10 /tmp

Isso significa que a modificação na permissão da pasta aconteceu do seu lado, seja na construção de sua imagem a partir de alguma etapa do seu Dockerfile ou em como você executa seu contêiner. Sem detalhes do seu Dockerfile ou comandos usados para executar seu contêiner (incluindo um Docker-compose.arquivo yml se você usar um), não acredito que seja possível dar uma resposta mais detalhada.

Se a imagem for boa, a próxima coisa a verificar é que você liga e aumenta o volume, pois eles podem bagunçar as coisas. Também vale a pena verificar qualquer script de ponto de entrada emcaso eles estejam fazendo algo bobo.

Você deve encontrar a resposta no Dockerfile.

Ou a imagem base já tem esses perms errados ou o Dockerfile está fazendo algo ruim durante a construção da imagem.

Em ambos os casos, você pode apenas corrigir esse problema no Dockerfile e reconstruir uma nova imagem.

@ BMitch minha imagem é ‘do php: 5-apache’ que é então ‘do debian: stretch-slim’ que é então ‘do zero’. Nenhum deles modifica explicitamente as permissões de ‘/tmp’.

Você pode fornecer a imagem usada e / ou Dockerfile usado para construir sua imagem? Inclua também o comando que você usa para iniciar o contêiner, incluindo qualquer composição.arquivo yml.