J'essaie de lancer des postgres dans des conteneurs IBM. Je viens de créer le volume par: puis le monter: p> # chown postgres:postgres pgsql
chown: changing ownership of 'pgsql': Permission denied
3 Réponses :
Dans votre DockerFile, vous pouvez modifier les autorisations d'un répertoire. P>
En outre, lorsque vous SSH, vous pouvez modifier les autorisations du répertoire à l'aide de Exécuter chown Postgres: Postgres PGSQL CODE> P>
sudo code>.
Sudo Chown Postgres: Postgres PGSQL CODE> P>
Les deux ne fonctionnaient pas pour moi. Voulez-vous dire Vanilla Docker mais IBM Conteners?
Les deux sont applicables aux conteneurs à la vanille. Les conteneurs IBM sont la même chose
@RUIMO Avez-vous toujours ce problème?
Oui, il semble que le système de fichiers du volume Bluemix ne permet pas à l'utilisateur de racine de modifier des fichiers appartenant à d'autres utilisateurs ...
@Jeffsloyer, j'ai rencontré un problème similaire et ces deux solutions ne fonctionnent pas pour moi. Je m'attendais au moins le second pour travailler. J'ai raccroché sur un conteneur Tomcat (que j'avais utile) au volume et que je suis assuré au conteneur. L'émission d'un chappe a entraîné un message refusé par la permission.
Voici 3 solutions différentes mais possibles: p>
Merci pour l'information. 1, 2 n'a pas travaillé pour moi. Localisation "Exécuter chown" avant l'énoncé de volume ou l'ajout de «racine d'utilisateur» avant que «Run Chown» n'a eu aucun effet. Pour la solution 3, je ne sais pas comment je peux passer à la commande "CF IC Run" ...
Dans les conteneurs IBM, l'espace de noms d'utilisateur est activé pour Docker Moteur. Lorsque, l'espace de nom d'utilisateur est activé, la racine effective à l'intérieur du conteneur est un utilisateur non root de sortie du processus de conteneur et NFS ne permet pas à l'utilisateur de non-racine mappé d'effectuer le fonctionnement de Nappe sur le volume à l'intérieur du conteneur. Veuillez noter que le volume Vous pouvez essayer la solution de contournement suggérée pour
Comment puis-je corriger les autorisations à l'aide de Docker sur un volume bluemix? p> dans ce scénario, il sera p> pgdata code> est un NFS, celui-ci peut vérifier en exécutant
montage -t nfs4 code> du conteneur.
Merci, ajout d'un utilisateur Postgres au groupe racine provisoirement fait la magie!
Cela semble aider provisoirement, mais comment cela chercherait-il à le rendre permanent? Si je suive cela, puis démarrez un nouveau conteneur, je suis de retour à la permission refusée sur le sous-répertoire pgsql code>. J'utilise également le
Postgres: 9.5 Code> Image qui pourrait rendre les choses un peu différentes.
Pour référence, je n'ai pas été capable de faire ce travail en utilisant l'image officielle DockerHub Postgres 9.5. Il a nécessité la modification du fichier docker-enterrypoint.sh code> en utilisant certaines des idées ci-dessus avant que les choses ne fonctionneraient.
@KrSyoung: Pouvez-vous partager ce que vous avez fait pour le faire fonctionner?
Hey @stanislavpalatnik, j'ai téléchargé un exemple de changements que j'ai faits ici: Github.com/krsss -Containeuses-Postgres . Faites-moi savoir comment vous faites savoir!
@krsssoung: Merci! C'était presque parfait. Un problème est que la vérification de pg_version échoue car la racine "non root" tente d'accéder à un fichier appartenant à Postgres. Je viens de chigoter le dossier Pgdata à 744 avant le chèque et le retour à 700 après. Travaillé comme un charme!