Cet article présente principalement des solutions aux problèmes d'autorisation rencontrés par Docker lors de la création d'un environnement de développement PHP. Il a une certaine valeur de référence et vous pouvez en savoir plus si vous en avez besoin.
Récemment, j'ai exécuté l'environnement de développement et de test de l'entreprise sur Docker, car le développement et les tests installent essentiellement le code et l'extraient à cette adresse, puis installent le répertoire et le montent dans le répertoire miroir, par exemple. : J'utilise docker-compose
# development.yml version: '2' services: php-fpm: image: jackluo/php-fpm:5.6.3 restart: always volumes: - ./www:/var/www/html - ./data:/usr/local/var/log extra_hosts: - "cache.redis.com:192.168.9.111" - "192.168.9.111:192.168.9.111" web: image: index.alauda.cn/library/nginx restart: always links: - php-fpm volumes: - ./config:/etc/nginx/conf.d - ./data:/var/log/nginx volumes_from: - php-fpm ports: - 80:80 expose: - 80
ce qui précède
jackluo/php-fpm:5.6.3 C'est moi J'ai ajouté quelques éléments à l'image officielle que j'ai extraite. Plus précisément, il existe une bibliothèque Docker sur github
Le framework PHP actuel utilise thinkphp pour générer des fichiers de cache et des répertoires. . L'utilisateur en cours est www-data. La solution précédente était que tant que les deux utilisateurs étaient cohérents, je créais un utilisateur www-data localement, tel que
, qui étaient tous des autorisations www -data. , jetons un coup d'œil aux autorisations générées par la machine hôte au-dessus du Runtime
Tous ont 33 ans, quel type d'utilisateur a 33 ans ? ? ? ? , j'ai regardé les autorisations dans Docker
et j'ai découvert que les autorisations montées étaient de 1000, et celle générée par php est devenue www-data
Ensuite, j'ai visité la page Web
La page Web indique qu'il n'y a pas d'autorisation d'écriture. Qu'est-ce que cela signifie ?
En fait, ce problème me préoccupe depuis longtemps. Ma solution générale est de donner directement les autorisations 777 sur le Runtime. Cependant, s'il s'agit d'une page php nouvellement générée, je dois exécuter les autorisations données. 777 à chaque fois. , je me sens vraiment mécontent, j'ai finalement trouvé la solution sur http://stackoverflow.com/ La solution officielle est
FROM php:5.6-fpm RUN usermod -u 1000 www-data
. Si vous êtes mac
RUN usermod -u 1000 www-data && usermod -G staff www-data
De cette façon, les autorisations générées par le cache généré par php seront cohérentes
Le problème est résolu comme ça
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!