Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Dockerfile不安装运行依赖项_Php_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Php Dockerfile不安装运行依赖项

Php Dockerfile不安装运行依赖项,php,docker,docker-compose,dockerfile,Php,Docker,Docker Compose,Dockerfile,docker-compose.yml version: '3.7' services: php: build: context: . dockerfile: Dockerfile image: php:7.3-rc-fpm container_name: php_7.3-rc-fpm volumes: - .:/var/www/app restart: unless-sto

docker-compose.yml

  version: '3.7'
  services:
    php:
      build:
        context: .
        dockerfile: Dockerfile
      image: php:7.3-rc-fpm
      container_name: php_7.3-rc-fpm
      volumes:
        - .:/var/www/app
      restart: unless-stopped
      working_dir: /var/www
      stdin_open: true
      tty: true
Dockerfile

FROM php:7.3-rc-fpm

RUN apt-get update && apt-get install -y \
  build-essential \
  mysql-client \
  locales \
  zip \
  vim \
  unzip \
  git \
  curl


# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Install extensions
RUN docker-php-ext-install pdo_mysql mbstring zip pcntl

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Copy existing application directory permissions
COPY --chown=www:www . /var/www

# Change current user to www
USER www
开始使用

docker-compose up -d
当我执行

docker-compose exec php bash

mysql --version
导致

bash: mysql: command not found
mysql客户端丢失,其他客户端也在运行安装

知道发生了什么吗

…当我没有任何………

图像时,stackoverflow需要更多详细信息来批准我的编辑:应该删除php:7.3-rc-fpm

它告诉docker compose从php_7.3-rc-fpm映像生成,而不是从docker文件的映像生成。这是一个优先级问题。因此,Dockerfile中没有您要求安装的内容是正常的

我进行了测试以确定,如果删除这一行,docker compose exec php bash命令和mysql-version命令将为您提供所需的功能。

image:php:7.3-rc-fpm应该删除

它告诉docker compose从php_7.3-rc-fpm映像生成,而不是从docker文件的映像生成。这是一个优先级问题。因此,Dockerfile中没有您要求安装的内容是正常的


我进行了测试以确保,如果删除这一行,docker compose exec php bash命令和mysql-version命令会给出您所期望的结果。

您误用了容器图像名称。在docker-compose.yml中,您告诉:

services:
    php:
      build:
        context: .
        dockerfile: Dockerfile
      image: php:7.3-rc-fpm
您希望构建自己的映像并将其命名为php:7.3-rc-fpm!但这不是您的图像的名称-它是一个著名的php docker容器的名称!在Dockerfile中,您从中继承:

FROM php:7.3-rc-fpm
所以,您正在覆盖公共图像,但您自己的图像。我只能猜测,新的图像会是什么样子。。
解决方案-从docker compose文件中删除图像。它不是要使用的映像,而是您希望在生成映像后,在与生成属性一起使用时提供给映像的名称。

您误用了容器映像名称。在docker-compose.yml中,您告诉:

services:
    php:
      build:
        context: .
        dockerfile: Dockerfile
      image: php:7.3-rc-fpm
您希望构建自己的映像并将其命名为php:7.3-rc-fpm!但这不是您的图像的名称-它是一个著名的php docker容器的名称!在Dockerfile中,您从中继承:

FROM php:7.3-rc-fpm
所以,您正在覆盖公共图像,但您自己的图像。我只能猜测,新的图像会是什么样子。。
解决方案-从docker compose文件中删除图像。它不是要使用的图像,它是您希望在生成图像后,在与生成属性一起使用时给出的名称。

它不应该是docker exec php bash吗?bash工作正常。您能告诉我们整个过程吗?您是如何使用docker compose启动php服务的?当前目录的结构是怎样的?@godot编辑了我的post不是应该是docker exec php bash吗?bash工作正常,可以告诉我们整个过程吗?您是如何使用docker compose启动php服务的?当前目录的结构如何?@godot编辑了我的postSmall便笺,如果你看,你会看到它说了一些矛盾的话:>如果你指定了image和build,那么就用image中指定的webapp和可选标记为build image命名。但这不是我以前注意到的经验。也许有什么我不知道或者文档不是最新的…小注,如果你看,你会看到它说了一些矛盾的事情:>如果你指定图像和构建,然后用图像中指定的webapp和可选标记组合构建图像的名称。但这不是我以前注意到的经验。也许有些东西我不知道或者文档不是最新的。。。