Dockerfile не устанавливает зависимости RUN - PullRequest
0 голосов
/ 04 декабря 2018

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-client, а также другие установки RUNs ...

Любая идея, чточто происходит?

.... и stackoverflow требует более подробной информации для подтверждения моего редактирования, когда у меня нет ............

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы неправильно используете имя изображения контейнера.В вашем docker-compose.yml вы говорите:

services:
    php:
      build:
        context: .
        dockerfile: Dockerfile
      image: php:7.3-rc-fpm

Что вы хотите создать свой собственный образ и назовите его php: 7.3-rc-fpm !Но это не имя вашего изображения - это имя известного docker-контейнера php!И в вашем Dockerfile вы наследуете от него:

FROM php:7.3-rc-fpm

Итак, вы перезаписываете общедоступный образ, но свой собственный.И я могу только догадываться, каким будет новое изображение. Решение - удалите image из вашего docker-compose файла.Это не изображение, которое будет использоваться, это имя, которое вы хотите дать своему изображению после его создания при использовании в сочетании с build свойствами.

0 голосов
/ 04 декабря 2018

image: php:7.3-rc-fpm должен быть отброшен.

Он сообщает docker-compose о сборке из образа "php_7.3-rc-fpm", а не из сборки образа с вашим Dockerfile (это вопрос приоритета).Так что это нормально, что ничего из того, что вы просите установить в Dockerfile, не доступно ...

Я проверял, чтобы убедиться, и действительно, если вы пропустите эту строку, команды docker-compose exec php bash, за которыми следует mysql --version, дают вамты ожидал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...