Run `docker-php-ext-installer " à PARTIR conteneur autre que php
J'ai un problème avec Docker (menu fixe-composer). Je veux installer quelques extensions PHP à l'aide de docker-compose.yml
, mais je suis incapable de le faire, parce que mon .yml a FROM ubuntu
et pas FROM php
. Est-il possible que je peux atteindre ou accéder à la docker-php-ext-install
?
Dockerfile
FROM ubuntu:16.04
RUN apt -yqq update
RUN apt -yqq install nginx iputils-ping
RUN docker-php-ext-install pdo pdo_mysql mbstring
WORKDIR /usr/local/src
COPY docker/nginx/dev.conf /etc/nginx/conf.d/dev.conf
COPY docker/nginx/nginx.conf /etc/nginx/nginx.conf
CMD ["nginx"]
docker-composer.yml
version: "2"
services:
mariadb:
image: mariadb
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=1
- MYSQL_ROOT_PASSWORD=
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
restart: always
environment:
- PMA_HOST=mariadb
links:
- mariadb
php:
image: php:7.1.1-fpm
ports:
- "9000:9000"
volumes:
- .:/dogopic
links:
- mariadb
nginx:
build: .
ports:
- "8000:80"
volumes:
- .:/dogopic
links:
- php
Sortie de la Console (fragment)
Step 5/9 : RUN docker-php-ext-install pdo pdo_mysql mbstring
---> Running in 445f8c82883d
/bin/sh: 1: docker-php-ext-install: not found
Regardez stackoverflow.com/questions/37527803/...
J'ai regardé avant, mais mon problème n'est pas avec l'extension de dépendances, mais avec la chose, que docker-php-ext-installer existe dans
J'ai regardé avant, mais mon problème n'est pas avec l'extension de dépendances, mais avec la chose, que docker-php-ext-installer existe dans
php
conteneur
OriginalL'auteur Albert221 | 2017-02-19
Vous devez vous connecter pour publier un commentaire.
Nouvelle solution
Après 4 mois de profondeur à la recherche par le biais de documents, après d'innombrables quantité d'heures passées à étudier les Dockerfiles des étrangers, qui, après une grande quantité de nuits blanches... Enfin, le bonne réponse!
Tout ce que vous aviez à faire est de créer de nouveaux Dockerfile de service spécifiques, dans ce cas
php
:php/Dockerfile
Et puis lien dans votre
docker-compose.yml
fichier, comme ceci:Veuillez jeter un oeil à
build
paramètre - il pointe vers le répertoire dans lequel est le nouveau Dockerfile situé.Vieille solution
Je me suis promené dans le problème. J'ai compris que je peux encore courir cette
docker-php-ext-install
script à l'aide de la commande suivante:Et en raison de la facilité que j'ai créé ce simple fichier Batch pour simplifier la composition de conteneurs, juste pour une seule commande:
./docker.bat
docker-compose
sent comme un anti-modèle.OriginalL'auteur Albert221
docker-php-ext-install
n'est pas natif docker fonctionnalité. Si vous lisez php docker hub page attentivement, vous verrez que c'est juste un script fournis pour rendre le processus d'installation facile:Si votre image est basée sur
ubuntu
, pasphp
, vous pouvez trouverdocker-php-ext-install
, par exemple, sur github.Mais depuis votre
Dockerfile
estFROM ubuntu
, je vous conseille d'installer php avecapt-get
:Ne pas oublier de mettre en place
nginx
d'utiliser php-fpm. Pour ce faire, j'utilise personnellement unstart.sh
script, qui débutephp-fpm
etnginx
dans le conteneur:Et dans le
Dockerfile
je lance le script. pasnginx
:apt-get
et à cause de cela, j'ai utilisé quelque chose d'autre. Mais merci!Je suis un utilisateur de Fedora moi-même, mais comme je sais que vous pouvez le faire
apt-get install <package name>=<version>
ou au moinsapt-get install -y php5.6
. Si vous google, la solution sera sûrement présent lui-même.Comment puis-je ajouter des scripts d'assistance docker-php-ext-configurer, docker-php-ext-installer dans mon panneau de fichier ?
copier-coller. Du projet initial à la vôtre.
Je coppied scripts à partir de github.com/flik/php/tree/master/7.0/stretch/cli et le coller dans mon panneau de fichier, mais se l'erreur en ce qui concerne certaines dépendances pour l'exécution.
OriginalL'auteur Alex Karshin