Maison  >  Article  >  développement back-end  >  Comment résoudre le problème d'autorisation rencontré par Docker lors de la création d'un environnement de développement php

Comment résoudre le problème d'autorisation rencontré par Docker lors de la création d'un environnement de développement php

不言
不言original
2018-06-09 14:30:403086parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn